分类目录归档:PHP

站点验证

php数据采集

爬虫主要功能:
1.html文档解析
2.文件加载存储(图片、zip等各种文件)
3.模拟网站各种请求,获取返回数据,解析,并存入数据库
4.自动迭代寻找数据

解析xml或html主要方式
正则表达式
PHP DOMDocument
插件: PHP Simple HTML DOM Parser

定时执行PHP代码

在linux环境下,通过cron配置执行脚本,就是通过linux下php命令执行php文件,这种方式是在php单独环境下执行,不受apache环境限制,可以执行长时间运行的程序 (同样还有j2ee中,jsp长时间执行就会出现断开连接情况,当然通过servlet可以后台一直执行,但是毕竟需要配置web.xml还需要重启环境,不是很方便,这是就可以单独执行java程序,让后通过cron配置linux后台定时执行)

例如:

10 5 * * * /usr/bin/php  /usr/local/run/back_run.php
每天5点10分执行back_run.php脚本程序,这时可以执行任意长时间,执行完后进程自动销毁,执行的时候,可以通过ps -ef|grep back_run.php找到执行中的进程。

该方式可以实现很多php批处理功能。

php中echo,print,printf,print_r,var_dump的区别

echo是语言结构,不是函数,没有返回值,输出速度最快;
print是一个函数,有返回值,输出单个变量;
print_r通常用于打印复合类型对象的信息,比如数组、对象;
printf用于格式化输出字符串,比如:
$username = "Andy";

$number = 123;

printf("Hi,%s. Welcome to %u",$username,$number);

var_dump:

PHP套接字传输器 socket transports

如果没指定,默认使用TCP。

通过stream_get_transports()获取目前平台里支持哪些传输器。

传输器例子:

  • 127.0.0.1
  • fe80::1
  • www.example.com
  • tcp://127.0.0.1
  • tcp://fe80::1
  • tcp://www.example.com
  • udp://www.example.com
  • ssl://www.example.com
  • sslv2://www.example.com
  • sslv3://www.example.com
  • tls://www.example.com’

在stream_socket_client中,需要加端口号

  • tcp://127.0.0.1:80
  • tcp://[fe80::1]:80
  • tcp://www.example.com:80

ssl tls 套接字传输器仅在PHP开启openssl支持时才有用, 它们其实是tcp套接字传输器的加密版。

使用ab遇到的几个常见问题

1.  too many files

打开的文件数量超过linux/unix系统设置,  ulimit -a 可以查看限制数量是多少. 对于linux/unix,建立一个socket相当于打开一个设备文件

修改ulimit:  ulimit -n 35768

2.  apr_socket_recv: Connection reset by peer (54)