+ -
当前位置:首页 → 问答吧 → 我的PHP学习笔记

我的PHP学习笔记

时间:2007-08-26

来源:互联网

1,        语句脱离:
<?php echo "hello world"?>和
<?php
Echo “hello world”;
?>是等价的。

2,        print_r的使用:
$a=array(1,2,”hello”,array(“one”,”two”));
则print_r($a);后输出:
Array ( [0] => 1 [1] => 2 [2] => hello [3] => Array ( [0] => one [1] => two ) )
能够很清楚的看明白数组a的结构。

3,        var_dump 列出变量资讯
<?php
$phone="113";
var_dump(ereg("113",$phone));
?>

4,
<?php
echo <<< nol
hello world!
nol;
?>
Nol只是一个样式,可以换为其它字母或中文,但NOL;必须顶格写。

5,
用PHP处理多个同名复选框
如果一个表单中有多个同名复选框,在提交到php时却只有一个值,而并不像asp那样是一串用逗号分割的值。解决的方法是利用数组。将复选框的name后面加上[],例如:<input type="checkbox" name="pp" value="1"> 改为:<input type="checkbox" name="pp[]" value="1">。这样php将得到一个叫pp的阵列。在提交的表单中先用Count(pp)来判断数组的个数即选中的个数,然后对数组进行分别处理就行了。
同样的道理也适应于处理下拉框的多选问题。

6,点击浏览器的后退按钮后,所有字段的信息都被清空了?
这是由于你在你的表单提交页面中使用了 session_start 函数。该函数会强制当前页面不被缓存。解决办法为,在你的 Session_start 函数后加入 header("Cache-control: private"); 注意在本行之前你的PHP程序不能有任何输出。

补充:还有基于session的解决方法,在session_start前加上
session_cache_limiter('nocache');// 清空表单
session_cache_limiter('private'); //不清空表单,只在session生效期间
session_cache_limiter('public'); //不清空表单,如同没使用session一般

可以在session_start();前加session_cache_limiter("private,max-age=10800");

7,E-mail的正确判断
eregi("^[_.0-9a-zA-Z-]+@([0-9a-zA-Z][0-9a-zA-Z_-]+.)+[a-zA-Z]$",$email);

8,file_get_contents($filename):将文件的内容全部读到出
注意,$filename必须为真实路径,可用realpath()返回路径。
例:
<?php
$file=”me.php”;
$file=realpath($file);
$con=file_get_contents($file);
?>

File_put_contents($con,$file);
同样$file要为真实路径。
例:
<?
$con=”hello”;
$file=”me.php”;
$file=realpath($file);
$re=file_put_contents($con,$file);
?>

9,array_map:将函数作用有数组的每一个单元上
例:
<?php
function cube($n)
{
    return($n * $n * $n);
}

$a = array(1, 2, 3, 4, 5);
$b = array_map("cube", $a);
print_r($b);
?>
        用法2:重新建一个数组
        例:
<?php
$a = array(1, 2, 3, 4, 5);
$b = array("one", "two", "three", "four", "five");
$c = array("uno", "dos", "tres", "cuatro", "cinco");

$d = array_map(null, $a, $b, $c);
print_r($d);
?>

10,strtr($str,$from,$to)转换字符串中的某些单元
例:
<?php
$a=hello world!!!;
Echo strtr($a,”hello”,”hi”);//转换为:hillo world!!!
?>

<?php
$a=hello world!!!;
$b=array(”hello”=>”hi”);
Echo strtr($a,$b);        //转换为:hi world!!! (与上例不同)
?>

11,strpos($string,$str);        //在$string中寻$str字符若有则返回其所在位置
<?php
$str=”hello world!”;
Echo strpos($str,”w”);
?>

12,implode(“str”,$array);        将$array数组用str字符串连接起来
例:
<?php
       $a=array(“hello”,”world”,”!!!”);
       Echo implode(“ ”,$a);
?>

13,split(partten,string)以正规表达式将字符串切开
例:
<?php
date = "04/30/1973";      // Delimiters may be slash, dot, or hyphen   
list ($month, $day, $year) = split ('[/.-]', $date);
echo "Month: $month; Day: $day; Year: $year<br>\n";
?>

14,fopen($filepath,”a”);以只写的方式打开文件,置文件的指针于文件尾,若文件不存在,试图创建之。(在me.txt中追加内容)
例:
<?php
$file=”me.txt”;
$handle=fopen($file,”a”);
$content=”hello world!!!”;
If(fwrite($handle,$content))
{
        Echo “Write to me.txt OK!”;
}
Else echo “Write to me.txt BAD!”;
?>

15,range(int low,int high)建立一个整数数组
例:
<?php
$arr=range(1,3);
Print_r($arr);//输出:array([0]=>1,[1]=>2,[2]=>3)
?>

16,htmlspecialchars(str) 将str字符串中的html标记置换
例:
<?php
$a=”<h1>hello world</h1>”;
Echo htmlspecialchars($a);   //输出:<h1>hello world</h1>
?>

17,用Apache后,主页出现乱码

方法一:
AddDefaultCharset ISO-8859-1 改为 AddDefaultCharset off

方法二:
AddDefaultCharset GB2312

18,$_SERVER['HTTP_REFERER']。得到的数据是传递到本页面的上一页面的UTL地址
用途:1、防止盗连,比如我是个下载软件的网站,在下载页面我先用referer来判断上一页面是不是自己网站,如果不是,说明有人盗连了你的下载地址。
2、电子商务网站的安全,我在提交信用卡等重要信息的页面用referer来判断上一页是不是自己的网站,如果不是,可能是黑客用自己写的一个表单,来提交,为了能跳过你上一页里的javascript的验证等目的。
19,nl2br转换新行为html中的<br>
从数据库中得到数据后,用ehco nl2br($row[‘content’]);

20,getcwd(),chdir($path)综合使用
Getcwd();得到当前目录(绝对路径)
Chdir()改变目录
例:
<?php
// current directory
echo getcwd() . "\n";
chdir('img');
// current directory
echo getcwd() . "\n";
?>

[ 本帖最后由 dx_andy 于 2007-8-26 13:35 编辑 ]

作者: dx_andy   发布时间: 2007-08-26

恩,不错!

作者: forest   发布时间: 2007-08-26

支持一下.可以复习一下有些知识点.

作者: londit.cn   发布时间: 2007-08-28