Category: PHP

PHP 使用 JSON

PHP 要使用 JSON 很方便, 只要用内建的 json_encode() 及 json_decode() 函式就可以, 以下简单例子是在 PHP 用 json_encode() 输出 JSON 资料: 上面的第 7 行, 用 json_encode() 函式输出 $lang 的 JSON 资料, 然后放到 JavaScript 的变量。 …

PHP 判断智能手机及平板电脑

判断用户是否用手机访问网站后, 可以根据用户的系统, 决定显示一般大小的网页, 或者手机及平板电脑的专属网页。 用 PHP 要判断用户是否用流动装置访问, 最简单的方法是通过 $_SERVER 检查。每部电脑或者每个浏览器都有不同的 User Agent, 而 $_SERVER 就是纪录了用户的 User Agent, 下面是常用手机的 User Agent 会出现的字串: iPhone: 用 “iPhone” 作为判断字串. iPad: 用 “iPad” 作为判断字串. …

PHP + MySQL 免费电子书

下面列出一些 PHP 及 MySQL 的免费电子书, 除了入门书籍外, 也有一些是较深入内容的, 但要留意, 全都英文版。 Learn PHP, MySQL, CSS, JavaScript and HTML5 PHP 5 Power Programming Beginning Php5 Apache And Mysql Web Development PHP5 And …

PHP 单引号及双引号的分别

在 PHP 印出字串, 或者将字串放入函式内, 可以透过单引号或双引号, 两者看似差不多, 但分别还是有的。 单引号及双引号在 PHP 里面最大的分别是, 用单引号时只会印出字串, 但不会印出里面的变量内容, 以及不会对类似 \t, \r, \n 等特别字串做处理, 例如: 上面会印出 I like $str, 而不会印出 $str 的值, 另一个例子是: 上面的例子不会对新换行符号 \n 做处理, …

PHP 检查及转换字串编码

mb_detect_encoding() 是用作检查字串编码的 PHP 函式, 使用上很方便, 例如: 以上程式码会印出 $str 的编码, 例如 UTF-8。 iconv() 则是用作转换字串编码的函式, 例如我想将 BIG5 编码转到 UTF-8, 是这样写: 将上面的 mb_detect_encoding() 及 iconv() 配合使用, 可以先得出字串编码, 然后做转换:

PHP 内建的 Web Server

PHP 从 5.4 开始内建简单的 Web Server, 主要用作开发环境测试用途。比起以往要安装 Apache 及 PHP 简单方便得多, 但不知道跟用 Apache + PHP 的环境差异有多大。 启动 PHP Web Server 指令: php -S localhost:80 -t 执行后便会出现以下信息: PHP 5.4.0 Development …

PHP: 改变 file_get_contents() User-Agent

PHP 的内建函式 file_get_contents() 除了可以读取本地档案外, 也可以撷取远端网页, 但有些时候会还到 403 Forbidden 情况, 原因是网站服务器会读取 user-agent, 判断是否浏览器正常访问。 一般上网站会用 user-agent 判断访客的浏览器或 OS, 例如手机访客所看到的网页跟 desktop 有所不同。而封锁像 PHP 的 file_get_contents() 之类的非正常浏览 user-agent, 可以减少服务器的负荷及外部的 DDOS 攻击。 要解决这个问题, 可以在 …

Linux 查看及转换档案编码

Linux 下要查看档案的编码有多种方法, 以下会用 file 指令查看档案的编码。例如查看 php.ini 档案的编码: $ file -i php.ini php.ini: text/plain; charset=us-ascii 上面可以看到 php.ini 档案是纯文字档, 编码是 us-ascii, 如果不想输出档案名称, 只要得出档案类型及结果, 可以加入 -b 参数: $ file -bi php.ini text/plain; …

PHP 监测服务器

在网上的服务器监测程式有很多, 功能都十分完善, 但如果你像我一样只要监测服务器是否 down 机, 而且全都是 httpd 服务器, 可以透过 PHP 简单实现, 例如这样就可以很简单地看到服务器是否可以连接: 当然上面的程式很阳春, 只会印出服务器是否可以连接, 而且只可以人手打开上面 PHP 网页才可以监测。其实只要透过 crontab 自动执行 PHP, 就可以让 PHP 自动监测服务器, 并在发生问题时以电邮通知管理员。另外也可以在要监测的服务器上放一个细小的 PHP 程式, 会印出系统的 load average, …

PHP 读取 CSV 档案

在 PHP 要读取 CSV 档案可以使用内建的 fgetcsv() 函式, fgetcsv() 可以读取 CSV 档案并逐行放到 array 里面, 假设以下为 CSV 档内容: “User1″,”user1@domain.com” “User2″,”user2@domain.com” “Hello123″,”hello123@domain.com” 如果 CSV 档案每行多一个字段, 做法也差不多, 例如 CSV 档内容: “User1″,”user1@domain.com”,”HK” “User2″,”user2@domain.com”,”HK” “Hello123″,”hello123@domain.com”,”USA” …