Category: PHP

PHP 用 curl 取代 file_get_contents()

PHP 要撷取其他网页的资料,最方便的方法是用 file_get_contents() 函式,以下程式码即可完成: 如果使用量不高,那么用 file_get_contents() 没什么问题,但如果 PHP 撷取其他网页内容的频率很高,便建议改用 curl 完成了。因为 curl 的效率比 file_get_contents() 高,以下是 curl 的例子:

PHP mail() 设定 Return-Path

在 PHP 上使用 mail() 发送电邮,如果没有正确设定 Return-Path, 发出的邮件会使用系统的主机名称,例如 apache@hostname.server, 以下是程式码: 在收到的邮件会看到寄件者是 from@example.com, 但当按下回复时,会使用系统的主机名称,除了回复地址名,也会有部邮 email server 拒收,会在 email server 的纪录档出现 “invalid sender MX”。 原因是邮件的 Return-Path 并没有使用 PHP 的 Return-Path 设定,邮件的 source …

JavaScript 搜寻并取代字串

在 JavaScript 做搜寻并取代字串可以用 replace() 来做, 例如: 上面的 string 变量是 “Hello Microsoft!”, 而变量 result 会变成 “Hello Linux!” 以上做法很简单, 但最大的问题是, 只会取代第一个符合条件的字串, 例如: 上面只会将第一个 “Microsoft” 取代为 “Linux”, 第二个不会取代, 要将全部字串取代, 可以用 regular expression …

PHP 查询 IP 所属国家

要查询 IP 所属国家, 一般上会用 IP 数据库查询, 网上也有一些网站可以免费查询, 但如果想在自己的 PHP 程式, 查询 IP 所属国家, 便需要下载一些 IP 转国家的数据库, 有付费及免费。 另一个较简单方便的做法, 是使用 API 查询, 以下会示范使用 freegeoip.net 的免费服务查询 IP 所属国家的方法。 freegeoip.net 把供 CSV, …

解决 PHP 错误 – Allowed memory size exhausted

PHP 其中一个常见的错误 “Allowed memory size exhausted”,这是由于执行的 PHP 程式使用的内存超出 PHP 设定的限制,要解决可以很简单地修改 php.ini 档案内的 memory_limit 选项即可。 首先开启 php.ini,在 RHEL 及 CentOS 用 yum 安装的 PHP,默认路径是 /etc/php.ini: # vi /etc/php.ini 找到 “memory_limit” …

查询已安装的 PHP 版本

由于 PHP 各版本的写法都略有不同,很多时都需要查询系统内的 PHP 版本,或者系统管理员也有时会需要检查 PHP 版本,要查询系统内的 PHP,分别可以用 PHP 程式或者 CLI 指令模式完成,以下分别看一看几种不同方法。 CLI 在 CLI 查询 PHP 版本十分简单,用 php 指令便可以: $ php –version 或 $ php-cgi –version 执行后会有类似的输出: PHP …

强制 PHP 显示错误讯息

很多主机基于保安理由, 将 PHP 执行时的错误讯息隐藏, 当 PHP 程式执行时遇到错误, 即使是 run time error 这类错误, 都只会显示空白内容。 原因是在 php.ini 设定了这两行: display_errors = Off error_reporting = Off 上面两个设定, 只要其中其中一个设定成 Off, 都不会显示错误讯息, 这样对于程式除错很麻烦, 要暂时显示 PHP …

禁止个别 VirtualHost 或目录使用 PHP mail() 函式

PHP 的 disable_functions 选项可以停用某些特定的 PHP 函式, 主要是基于安全理由, 将一些对系统有威胁的函式停用, 但 disable_functions 必须透过 php.ini 设定, 因为如果可以在 httpd.conf 或 .htaccess 设定, 使用者便很容易将停用的函式开启。 之前遇到一个情况, 要将个别 VirtualHost 的 mail() 函式停用, 但主机内其他 VirtualHost 仍要继续开启 mail()。虽然 …