![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
PHP
不要忘了为什么出发
加油吧,小伙!
展开
-
isset()、empty()、is_null()的区别
isset():如果变量值是null或者未初始化,则返回false;否则,返回true。empty():检查一个变量是否为空。如果变量未初始化、null、0、"0"、"0.0"、""、false、空数组,都返回true;否则返回false原创 2017-08-08 16:50:33 · 1742 阅读 · 0 评论 -
PHP常用函数积累
(1)PHP暂停函数有时候需要程序执行到某处时暂停一段时间,然后继续执行。比如,爬虫在爬取某个网站时,访问的太频繁的话会造成服务器较大的压力,这样不太好。sleep($time),参数为需要暂停的秒数;usleep($time),参数为需要暂停的毫秒数。1s = 1000ms原创 2017-08-17 09:19:22 · 842 阅读 · 0 评论 -
PHP爬虫之解析页面的方法
爬取页面一般比较容易,麻烦的是如何解析。PHP解析页面大概有四种方式:(1)PHP dom扩展(2)PHP html 扩展(3)PHP xml扩展(4)正则表达式,个人觉得这种方式比较麻烦。原创 2017-08-17 10:02:09 · 1946 阅读 · 0 评论 -
PHP自动类型转换之比较运算符
对于弱类型语言,类型的自动转换是非常恶心的问题,js如此,PHP也如此。遇到坑了,特地来说一说在比较运算时,PHP自动类型转换问题。主要想说一说,当数值与字符串进行比较运算时,是如何进行自动转换的。<?phpvar_dump(' 123fg456'>=122);var_dump('some string' == 0);var_dump(123.0 == '123d456');va原创 2017-09-17 22:27:16 · 815 阅读 · 0 评论 -
PHP执行外部程序
今天遇到个问题,如何通过PHP执行jar包。经过一番查阅,这个问题属于如何调用外部程序。PHP调用外部程序主要有三个函数:exec(),system(),passthru(),了解更多可以去查看PHP文档。举个例子:a.php<? echo "begin:"; echo exec('php b.php'); echo "end";?>b.原创 2017-09-10 10:46:07 · 751 阅读 · 0 评论 -
PHP的exec()函数用法详解
本文转载自:http://blog.csdn.net/shaobingj126/article/details/7029407先小说两句:今天研究了下PHP调用LINUX命令的功能,一开始怎么做都调用不成功,试了好久才终于成功了,所以发出来分享一下。下面我将详细介绍: PHP中提供了几个调用linux命令的函数,exec、system、passthru,函数使用请参考手册,这里转载 2017-09-10 11:30:34 · 66002 阅读 · 0 评论 -
PHPunset()用法详解
unset() 销毁指定的变量。注意在 PHP 3 中,unset() 将返回 TRUE(实际上是整型值 1),而在 PHP 4 中,unset() 不再是一个真正的函数:它现在是一个语句。这样就没有了返回值,试图获取 unset() 的返回值将导致解析错误。例子 1. unset() 示例// 销毁单个变量unset ($foo);//原创 2017-09-10 12:25:27 · 30330 阅读 · 5 评论 -
php trait学习笔记
PHP面向对象不支持多继承,只支持单继承。但是单继承就有局限性啊,于是就搞出了一个trait。trait和类很像,但它不能继承,不能实例化。定义trait与定义类一样,const、static、public、protected、private、abstract都可以用。而且,trait与trait之间还可以组合。trait trait1{//内容}trait trait2{原创 2017-09-18 20:34:47 · 398 阅读 · 0 评论 -
PHP面向对象之重载
PHP中对于同名的类、常量、函数是会产生致命错误的。PHP中面向对象的重载,我之前有点忘了,现在特地强化一下。类继承时,重载的条件:(1)函数名相同,参数个数相同(2)子类中的访问控制属性不能比父类中的严格。原创 2017-09-18 21:27:02 · 428 阅读 · 0 评论 -
PHP之serialize和unserialize的使用
当需要把数组写入文件时,就需要使用serialize()将数据处理为一个字符串写入文件。然后读取的时候,将读出的字符串使用unserialize()还原为一个数组。<?php$arr = array("a"=>1,"b"=>2,"c"=>3);$str = serialize($arr);file_put_contents("./test1.txt",$str);$str = file原创 2017-09-19 10:07:10 · 499 阅读 · 0 评论 -
PHP去除文件末尾的\n
一般在写文件的时候,都是以\n作为一行的结尾,这样会导致最后会多一个\n。现在,我想把文件末尾多出的\n去掉,在解决这个小问题的过程有点小收获。这个问题最好还是在写入的时候就注意一下。只能是将文件内容先读出来,去掉末尾的\n,然后再重新写入。fseek()的可定位文件指针。原创 2017-09-12 22:35:19 · 2484 阅读 · 0 评论 -
PHP:客户端禁用cookie之后如何使用session
在服务器端,要使用session,最本质的问题是要能够在服务器端拿到session的ID。通常情况下,在开启了session的页面中,即使用了session_start()的页面,首次访问的时候,会产生一个新的session,并有一个与之对应的sessionID,服务器会将这个sessionID通过http响应头部的set-cookie字段返回给客户端(浏览器),浏览器会将其保存在cookie原创 2017-08-27 16:09:00 · 2639 阅读 · 0 评论 -
防止表单重复提交
比如在购物网站支付的时候,就要避免表单重复提交。解决这个问题,可以从两个方面考虑。(1)前端a.提交之后,利用js将提交按钮禁用掉。b.提交之后,在一个新标签页打开一个页面,也就是用户的当前页面已经不再是提交页面了。(2)后端a。在提交页中隐藏一个字段值,然后在后端页面中,根据这个值来判断是否已经提交过了。b。利用数据库来防止重复提交。例如,购物账单,付款之后,会往数据原创 2017-09-04 22:40:30 · 133 阅读 · 0 评论 -
PHP设置页面字符集utf-8
这个需要使用header()函数,这个函数的功能就是设置响应报文内容的。想让浏览器按utf-8编码处理页面,就需要在响应报文中设置content-type字段。content-type,用于定义网络文件的类型和网页的编码,决定文件接收方将以什么形式、什么编码读取这个文件。在PHP文件中插入下边这行代码就可以了,不过要注意在header()函数之前不能有任何输出。header("Co原创 2017-08-16 10:00:38 · 3574 阅读 · 0 评论 -
PHP正则表达式匹配中文字符
废话少说,直接上代码。<?php$pattern = "/^[\x{4e00}-\x{9fa5}]*$/u";$str = "编程";if (preg_match($pattern,$str)) { echo "all chinese";} else { echo "not all chinese";} ?>$pattern = "/^[\x{4e00}-\x{9fa5}]*$原创 2017-08-16 10:56:23 · 2287 阅读 · 0 评论 -
PHP中+与array_merge()的区别
这个问题是在面试新浪微博的时候遇到的,之前从来没有进行过数组合并的操作。现将这两者的差别做个笔记。+和array_merge()都可以进行数组的合并操作,区别在于它们对相同索引的处理方式不同。(1)+不论是数字索引,还是字符串索引,当出现相同的索引时,都会舍弃后者。(2)array_merge()当遇到相同的数字索引时,会对数字索引重新编号,而不会丢弃;当遇到相同的字符串索引时原创 2017-08-03 09:56:28 · 1860 阅读 · 0 评论 -
PHP从命令行接收参数
昨天,在牛客网做华为机试题,不太熟悉它的环境,吃了大亏。之前从来没有考虑过PHP如何从命令行接收参数,导致在代码在本地可以得到正确结果,但提交之后始终无法通过。后来看了牛客网上关于如何使用在线编程的教程,才明白onlinejudge对输入输出有一定要求。测试样例是通过标准输入输入的,运行结果是通过标准输出输出的。标准输入就是键盘,标准输出就是显示器。经过大量实践,发现fscanf()最原创 2017-08-17 21:05:12 · 1430 阅读 · 0 评论 -
PHP面向对象之封装
市面上,很多讲解PHP的书对面向对象的内容讲的很简单。而官方文档也不足之处,例如有些语法细节没有说清楚。还有,官方文档的内容感觉比较散,不能将所有面向对象的内容串联起来。所以,现做个学习笔记,将自己学习的PHP面向对象输出出来。首先,面向对象的三个特点:封装、继承、多态。我将从这三个方面把PHP面向对象的内容都串联起来。接下来,将从封装的角度讲解PHP面向对象。(一)所谓封装,最直观的理解原创 2017-08-10 10:07:06 · 2382 阅读 · 0 评论 -
PHP文件结尾为什么可以省略?>
通常PHP文件,都是以结束。而且,我一直以为?>是必不可少的。来到新浪微博实习之后,看到有些PHP文件的结尾是没有?>的。故产生疑问。原创 2017-08-03 10:10:51 · 4272 阅读 · 0 评论 -
PHP preg_match_all详解
int preg_match_all ( string pattern, string subject, array &matches [, int flags] )最近在研究爬虫,对抓取的页面进行解析,需要用到这个函数。由于之前对这个函数只是一知半解,结果被狠狠地坑了一把。flags 是可省略的,默认值是PREG_PATTERN_ORDER,还可以有其他值,这个会影响matches的原创 2017-08-18 10:36:21 · 13986 阅读 · 0 评论 -
PHP面向对象有关问题集合
1.覆盖在类的继承时,会对同名属性或方法进行覆盖。对于方法的覆盖,要求函数名要相同,且参数个数要相同。但是如果子类的同名方法中含有默认参数则也可以。例如:public function foo($v1,$v2)public function foo($v1,$v2,$v3=1)这种情况也可以覆盖。切记,子类中的同名属性或方法的访问控制属性必须与父类中的一致或者更宽松。构原创 2017-08-18 11:43:45 · 987 阅读 · 0 评论 -
PHP文件包含详解
市面上很多PHP教材对文件包含的内容讲得都很简单,根本就没讲清楚。现将自己遇到的问题整理如下。文件包含是模块化开发的重要方式。PHP中文件包含是通过四个函数实现的:include,require,include_once,require_once。(1)文件包含的原理就是将被包含文件的代码复制到引用处。(2)文件包含可以是本地文件也可以是远程文件,但两者根本不是一回事,通常我们说的都是原创 2017-08-04 10:08:28 · 2348 阅读 · 0 评论 -
生成一组不重复随机数
思路:将产生的随机数放到数组里,然后去重。<?phpfunction foo($min,$max,$n){ $result = array(); $count = 0; while($count<$n) { $result[] = mt_rand($min,$max); $result = array_flip(array_f原创 2017-08-23 10:06:46 · 406 阅读 · 0 评论 -
PHP DOM简单用法
<?php$doc = new DOMDocument();$doc ->loadHTML($str);//$str为一段HTML代码$element = $doc->getElementById();//返回一个DOMElement对象,类似js中的dom对象$elements = $doc->getElementByTagName();//返回一个DOMElementList对象,它有原创 2017-09-12 22:54:16 · 1057 阅读 · 0 评论