php计算日期怎么算,web怎么用php设置变动的时间?
可以用定时器来处理,任务队列处理等办法
PHP自学要多长时间?
总体说来,编程语言里,PHP自觉不算难的,尤其是在如今网络资源发达的环境下,自学PHP有很多资源可以参考借鉴。
本人从最早的asp到现在的php都是自学,由于php主要应用于web开放,所以自学PHP过程中,还需要学习html\css\js\jquery\mysql等内容。
自学PHP时,千万不要一开始去学什么框架,要根据PHP手册去学习并应用。虽然现在网上资源多,但更重要的是你要有实战的机会。比如自己完整的写个blog程序,通过实战,你会发现很多问题并一个个去解决克服,进步会比较快。
当你掌握PHP的基础知识和基本应该用,可以开始接触框架,如国内的THINKPHP,它有很好的开发手册和众多的项目实例,或者通过github多看看别人的项目代码,这会对自己有很大帮助。
至于说自学需要多长时间,这个一个要看学习程度,另一个也要看每个人的领悟了。学习编程其实更多的是一个坚持不断学习的过程,没有明确的说学了多久以后就可以不学了。最简单的就说PHP版本,现在又快出7.4正式版了,你不能一直停留在5.6的版本,否则会对后续的产品开发有很多不利影响。所以,无论是PHP还是其他编程语言,学习是终身的事,除非你不想从事这个了,那就省得学了。
PHP如何判断字符串是否标准JSON?
引言
在MYSQL 5.6及以下没有 JSON 这个字段类型的时候,我们还只能用字符串存储数组,对象,这些结构数据;甚至有直接将序列化的对象存库的,都是无奈之举。
编程中也时不时对接口进行json_encode / json_decode。那么如果所得的字符串不是标准的格式,有什么办法快速检测吗?
本文就来说一说。
学习时间最快的办法,还是使用PHP内置的 json_decode 函数,对于此函数的参数和返回值,我们需要认真地分析。
该函数接受一个 JSON 编码的字符串并且把它转换为 PHP 变量。函数结构:
mixed json_decode( string $json[, bool $assoc = false[, int $depth = 512[, int $options = 0]]] )
除了第一个字符串类型的$json必填之外,其他都是选填。如果我们定制功能,需要后面的参数也指定。比如,解码的字符串解析为关联数组,那么就指定 $assoc = true。
考虑到兼容性的要求,$json 传入的字符串,必须是 UTF-8 编码格式。
我们试着编写一个助手函数,用于判断字符串是否标准的json格式:
function isJson($string) { json_decode($string); return (json_last_error() == JSON_ERROR_NONE); }
这个方法使用了2个函数,和1个常量。其中 json_decode 是对字符串解码暂且不说。json_last_error 函数,如果有返回值,则是 JSON 编码解码时最后发生的错误。
JSON_ERROR_NONE 是无错误,=0。该句判断没有错误则是标准格式,返回 true;否则返回 false。
深入学习其实上面的代码对于 json 加解码过程中的错误判断还是比较粗糙的。有一位小哥不嫌繁琐,手动拼装了详细的错误处理函数,非常实用。
使用上述函数进行测试:
$json = '[{"user_id":13,"username":"stack"},{"user_id":14,"username":"over"}]'; $output = json_validate($json); print_r($output);
输出内容如下:
这是正常的情况,json 格式完全正确。我们再测试一个不是规范格式的字符串。
$json = '{background-color:yellow;color:#000;padding:10px;width:650px;}'; $output = json_validate($json); print_r($output);
输出错误信息:
Syntax error, malformed JSON.
万能的正则跟字符串打交道,正则表达式几乎可以做一切你想要的结果。json 字符串也一样,据文档所说,使用正则表达式判断JSON格式,稳定有效,而且速度还很快。
下面这个正则表达式您拿小本本记好了,一模一样地抄下来用就可以了。
return !preg_match('/[^,:{}\\[\\]0-9.\\-+Eaeflnr-u \\n\\r\\t]/', preg_replace('/"(\\.|[^"\\\\])*"/', '', $json_string));
写在最后如果考虑程序的可读性,和可维护性,使用 json_decode 函数的判断无疑更直观,大家也更熟悉。然而正则表达式所体现出的高效也是不容小觑的。
Happy coding :_)
我是 @程序员小助手 ,持续分享编程知识,欢迎关注。
PHP网站怎么连接到数据库?
常规方式常规方式就是按部就班的读取文件了。其余的话和上述方案一致。PHP解析XML上述两种读取文件,其实都是为了PHP解析XML来做准备的。关于PHP解析XML的方式的博客有很多。方式也有很多,像simplexml,XMLReader,DOM啦等等。但是对于比较小型的xml配置文件,simplexml就足够了。配置文件解析数据库连接池对于PHP程序而言,优化永无止境。而数据库连接池就在一定程度上起到了优化的作用。其使得对用户的每一个请求而言,无需每次都像数据库申请链接资源。而是通过已存在的数据库连接池中的链接来返回,从时间上,效率上,都是一个大大的提升。于是,这里简单的模拟了一下数据库连接池的实现。核心在于维护一个“池”。从池子中取,用毕,归还给池子。
不会php可以学thinkphp吗?
可以,但是非常不建议。因为这会让你的基础不牢固,你可能会用thinkphp快速模仿出一个网站,但是一些php的原理都会被你忽略掉。
php是一门web开发语言,而thinkphp是在这上面封装的框架。简单来说,thinkphp就是把常用的功能给你封装好,你可以自己调用,但是其实它的底层调用的还是php的函数和基本语法。
当然如果非常短时间就要使用thinkphp开发一些简单应用,也可以直接学习它,毕竟上手容易是php的一大特点。但是之后,你还是要去重新踏踏实实学习php基本语法,基本函数,它的常用功能,因为这些都是你深入理解框架的前提。
基本功是最简单的,但是也是最难的。我们常讲万变不离其中,这个中就是基本功。有了基本功,你可以很好地理解框架,更好地使用框架,而且你还可以自己开发框架,这些都是在你打好基础的前提下。
最后总结一下,不建议在不会php的前提下就直接学习thinkphp,基础永远都是最重要的,基本功是你攀登高峰的最好选择。