Category: PHP
很久以前的 PHP 默认开启 Register Globals 选项, 这样写程式就很方便, 但这个方便也带来安全性问题, 所以后来 PHP 默认会将 Register Globals 关闭, 对于一些要开启 Register Globals 的程式, 在不修改程式码的情况下, 还可以透过修改 php.ini 或 .htaccess 的方法解决。 但在 PHP 5.4 开始, PHP …
XML-RPC 是 WordPress 的 API, 给开发者开发手机 Apps, 桌面应用程式或其他服务时, 可以跟 WordPress 沟通, 从远端能达到很多需要登入 WordPress 后台才能做的工作。xmlrpc.php 则是负责这个 API 的档案, 而很多针对 WordPress 的 DDOS 攻击也是针对这个档案。 早前在一台 VPS 上面, MySQL 的使用资源很高, 停止 Apache …
我喜欢用 RHEL 及 CentOS 的最主要原因, 是因为 Redhat 对产品的支援周时长达 10 年, 对于生产环境的主机这点很重要, 不用经想准备为系统作升级。但 CentOS 有一个缺点, 就是默认的套件版本较旧, 像 PHP 版本, 除非手动编译原代码安装, 否则可能到系统的生命周期完结, 也不会作主要升级。 现在 CentOS 7.3 的默认 PHP 版本为 5.4.16, 要在 …
现在 PHP 其中一个很大的问题, 是很多个不同的 PHP 版本都有人使用, 对于开发者需要顾及程式码是否可以在不同版本执行, 而对系统管理员, 就要面对不同程式可能需要不同 PHP 版本。 以下记录一下在系统安装不同 PHP 版本, 并可以按需要设定不同 Virtualhost 或目录, 可以使用不同 PHP 版本的方法, 以下会以 CentOS 7 及 Apache 作为安装环境。 首先在系统用 YUM 安装好 …
很多情况需要在 CLI 下执行 PHP, 例如要执行 /root/my-script.php, 只要执行以下指令便可以: # php /root/my-script.php 在默认的情况下, 执行以上 PHP script 时, 会跟着默认的 php.ini 有着相同的设定。在 Apache 还好, 可以用 php_admin_flag 设定个别 VirtualHost, 但在 CLI 就不可以用 php_admin_flag 设定了。 …
要用 PHP 连接 MongoDB 数据库, 需要先安装 PHP Mongo Driver, 以下文章会以 CentOS 为例, 透过 EPEL 安装 PHP Mongo Driver, 并用 PHP 连接 MongoDB 数据库, 示范新增、修改及删除资料。 先加入 EPEL Repl: 执行指令安装 PHP …
PHP 对档案的操作, 如复制、移动及删除档案都已经有内建函式, 只要对档案及写入目录有写入权限, 要实现很方便。 复制档案 PHP 有内建函式 copy() 可以复制档案, : 以上会将档案 ./file1.txt 复制到 ../dir/ 目录下 file123.txt. 而 PHP 的 copy() 成功复制后, 会回传 TRUE, 失则则传回 FALSE, 可以判断是否成功复制: 移动档案 移动或者重新命名档案, …
PHP 提供很多关于日期及时间的函式, 在 MySQL 如果没有使用 Unix timestamp 储存时间, 而使用 MySQL 的 Date 储存类型的话, 在转换及计算日期方面会较麻烦。 要转换 MySQL 的日期格式, 可以使用 PHP 内建的 strtotime() 函式, 将 MySQL 的日期格式转换为 Unix timestamp, 之后再用 date() …
在 C 或 Perl 这些程式语语, 在使用变量前需要先进行宣告, 而 PHP 则不需要宣告变量, 可以直接使用变量。 PHP 不需要宣告变量仍可执行, 只要在某些主机会出现 Warning, 例如: 上面程式码并未宣告变量 $test, 所以会出现错误 “Notice: Undefined variable: test”, 但由于这个只是 warning, 所以程式会继续执行, 除了显示错 warning 外, 也会显示 …
在 PHP 有一种很常见的 Warning 错误是 headers already sent, 出现时类似这样: Warning: Cannot modify header information – headers already sent by (output started at /path/to/file.php:20) in /path/to/file on line 23 这是在使用 …