PHP 和 Mysql 学习笔记(四)

1. 如何禁用 select 下拉列表中的某一项
<select><option  selected>——请选择——</option> <optgroup  label="分类一"> <option>——子类一</option> <option>——子类二</option> </optgroup> <optgroup  label="分类二"> <option>——子类一</option> <option>——子类二</option> </optgroup> </select>
2. EMS SQL Manager中文显示乱码
打开EMS SQL Manager点击那个数据库出现了许多属性
选择database registration info中有一个client charset
选择gb2312简体中文
3. Mysql 乱码
MySQL数据库字符集为utf8
并且网页通过UTF-8编码发送
这时存入数据库的仍然是乱码
需要做以下设置:
@mysql_connect($dbhost,$dbuser,$dbpassword);
加上下面这行
$this->query("SET NAMES 'utf8'");
在每次发送sql查询前设定字符集为utf-8
4. 正则表达式
Email匹配
if(!preg_match("/\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/",$email))
{
echo "邮件格式不正确";
}
5. PHP5中时间相差八小时的解决办法
<?phpdate_default_timezone_set('Asia/Shanghai');echo date('Y-m-d H:i:s');?>
6. PHP防止SQL注入攻击的简单方法
1.修改PHP的配置文件 php.ini ,将display_errors的值设为Off,这样保证PHP脚本在出错之后不会在页面中显示错误信息。
2.在Mysql函数前加错误抑制符 @ ,避免输出mysql错误。
3.对所有用户输入的数据进行转义并进行类型检查。
7. 返回GD函数版本号
function gd_version() {if (function_exists('gd_info')) {$GDArray [...]


PHP 和 Mysql 学习笔记(二)

1. 值参和变参
值参:
<?php function swap($a, $b) { $temp = $a; $a = $b; $b = $temp; } $x = 100; $y = 1; swap($x, $y); echo "x = $x<br />y = $y";?>
输出结果为:
x = 100y = 1
这里 $x, $y 只是一个值的拷贝
变参:
<?php function swap(&$a, &$b) { $temp = $a; $a = $b; $b = $temp; } $x = 100; $y = 1; swap($x, $y); echo "x = $x<br />y = $y";?>
输出结果为:
x = 1y = 100
2. 连接 mysql
格式: [...]


PHP 和 Mysql 学习笔记(一)

1. 单引号串和双引号串
<?php$a = 5;$b = 10;echo "a=$a\n";echo 'b=$b';?>
输出结果为:
a=5 b=$b
变量和转义字符要放到双引号里
2. 变量和函数的大小写区分
变量是严格区分大小写的
$a, $A 是不一样的
函数不区分大小写
3. 变量的变量
<?php$a = "Hello";$$a = "world"; //$Hello = "world"echo "$a, $Hello\n"; //Hello, worldecho "$a, ${$a}\n"; //也是 Hello worldecho "$a, $$a"; //Hello, $Hello?>
4. 赋值运算符
<?php$a = 200;$a += 10; //$a = $a + 10, 即 $a = 210$a -= 10; //$a = $a - 10, 即 $a = 200$a *= 10; //$a = [...]


重装系统是件麻烦的事

昨天终于把单位用的机器重装了,为了玩玩 babel 开始装 php5.1.5 , mysql5.0.24 , 去下apache 发现 2.2.3 已经出来了,于是想尝鲜,没想到惹来一大堆麻烦#83

开启 Apache Mod_rewrite
apache 2.2.x + PHP5.1.x 不能运行的解决办法.
apache2.2装完后更改DocumentRoot出现403错误原因
关于PHP5.1下 php文件显示空白问题

弄完我都快能做个Q&A了#76

Tags: apache, mysql, php, 操作系统, 重装


汉字截取的方法

原来有人提出了一个方法:
$len = 19;$text = "here is the text!";echo strlen($text)< =$len ? $text : (substr($text,0,$len).chr(0)."....");
在 SaBlog 的程序里发现了另一种方法:
function csubstr ($text, $limit) {    $s = ';    for($i=0;$i< $limit-3;$i++) {        $s .= ord($text[$i])>127 ? $text[$i].$text[++$i] : $text[$i];    }    return $s;}
以上仅适用于 gb2312 编码,如果是UTF-8 的话需要把第4行改为
$s .= ord($text[$i])>127 ? $text[$i].$text[++$i].$text[++$i] : $text[$i];
UTF-8 中的汉字是 3 个字节。

Tags: php, 汉字