PHP教程:五个使用PHP制作动态网页的技巧_PHP教程

编辑Tag赚U币
教程Tag:暂无Tag,欢迎添加,赚取U币!

推荐:php用session做客户验证时的注意事项
如果你的php.ini中register_globals = On, 所有post, get, cookie, session的同名变量就会搅和在一起, 可以用HTTP_*_VARS[username]来判断你想要的那个变量. 但是即使同名, 在php.ini中variables_order = GPCS也会按照优先级别来判断, 等级低的值没法冲

1. str_replace

str_replace是常用的php函数,用于字符串替换,经常看到某些php新人为了替换一批字符串,写了好多行str_replace,实在是惨不忍睹。

比如这个例子:

PHP:

str = ’某人的栖息地 --- www.dwww.cn’;
str = str_replace(’某人’, ’坏人’, str);
str = str_replace(’的’, ’di’, str);
str = str_replace(’栖息地’, ’猪窝窝’, str);
str = str_replace(’www.dwww.cn’, ’dwww.cn’, str);

以上,替换了4次字符串,实际只要换个写法,一行就搞定了:

str = ’某人的栖息地 --- www.dwww.cn’;
str = str_replace(array(’某人’, ’的’, ’栖息地’, ’www.dwww.cn’), array(’坏人’, ’di’, ’猪窝窝’, ’dwww.cn’), str);

2. array

经常看到有人拿数组这样写:echo arr[some_key];

上面这行代码能跑,看上去也没什么大问题,但是如果你把php.ini的error notice打开的话,会收到一大批error。php解析器首先是拿“some_key”当作一个常量来解释的,但如果没有定义some_key这样一个常量,解析器还是很宽容的把它当作了一个字符串来看待。因此新人同学们最好写完整一点:

echo arr[’some_key’];这样就没有问题了,如果你要把它放在双引号中连用,也不能省掉引号,可以这样写:echo "这是混在双引号中的字符串{arr[’some_key’]}";

3. 类型戏法

类型戏法相当好用,比如有一个表单提交过来的变量,正常情况下它应该是整型的,有时候偷懒省去校验的写法可以是这样的:

intVar = (int)_POST[’post_var’];

再比如数组,有时候写键值要打引号是不是很不爽啊,我们可以把它转换成object,比如:

arr = array(’name’ => ’volcano’, ’sex’ => ’male’);
arr = (object)arr;
echo arr->name;
echo arr->sex; 是不是很省事?

4. lambda函数

lamda函数和array_*系列函数使用有奇效,拿php手册上的一个例子来说:

PHP:

<?php
av = array("the ", "a ", "that ", "this ");
array_walk(av, create_function(’&v,k’, ’v = v . "mango";’));
print_r(av);
?>

至少省了一个for循环

5. 嵌套循环显示表格的单元格

嵌套循环显示表格的单元格,这是一个很老的话题哦,往往会要在某个单元格后边加个条件判断什么的,考虑是不是要输出tr抑或是td标签。

俺这里介绍一个办法,利用array_chunk函数能够比较工整的输出html,见下例,这个例子要输出一个4行6列的表格:

<?php
arr = range(1, 24); //这个会生成一个数组array(1,2,3,4....24)
arr = array_chunk(arr, 6);
// output table
?>
<table>
<?php foreach(arr as row): ?>
<tr>
<?php foreach(row as col):?>
<td><?php echo col?></td>
<?php endforeach;?>
</tr>
<?php endforeach;?>
</table>

分享:PHP入门教程:如何获得PHP相关资料?
1. 我在哪儿能得到php? 2. 有预编译的二进制版本吗? 3. 我在哪儿能得到可选的php扩展库 ? 4. 我怎样做才能使这些库运作起来? 5. 我在我的windows上用cvs得到最新版本的php源代码, 我怎样编译它? 6. 我在哪儿能找到 browser capabilities file? 1. 我在哪儿

来源:模板无忧//所属分类:PHP教程/更新时间:2012-06-15
相关PHP教程