PHP的常见问题

使用php编写代码过程中难免会遇到疑惑,本人会将工作中遇到的一些疑难杂症一一列举出来,如有错误不良赐教~

file_get_contents 疑惑

问题

PHP中对文件操作印象最深的莫过于 file_get_contents 和 file_put_contents 两个读写文件的函数,可谓是屡试不爽.当然,这两个函数同样可以请求API.可问题在于,有时候不知道原因的出现请求不到数据的问题.通过排查nginx记录下来的错误日志排查到调用函数出现 Server Error 500 错误,而这些链接如果放到浏览器明明可以访问.

排查

查询资料之后才知道其实User Agent 的问题, 而这个可能是服务器对此做了限制.User Agent默认是没有开启的,通过PHP.ini配置文件开启即可.

1
2
3
4
5
6
7
# 操作文件
find / -name php.ini
# 编辑文件
vim /etc/php.ini
user_agent="Mozilla/5.0 (Windows; U; Windows NT 5.1; rv:1.7.3) Gecko/20041001 Firefox/0.10.1"
# 重启PHP
systemctl restart php-fpm

通过开启User Agent的默认值来模拟浏览器发送请求达到”欺骗”服务器的目的.

PHP 模块加载

参考资料

解决php无法通过file_get_contents或curl采集页面内容

文章目录
  1. 1. file_get_contents 疑惑
    1. 1.1. 问题
    2. 1.2. 排查
  2. 2. PHP 模块加载
  3. 3. 参考资料