遍历一个文件夹下的所有文件和子文件夹

<?php
function my_scandir($dir){
$files = array();
if(is_dir($dir)){
if ($handle = opendir($dir)) {
while (($flie = readdir($handle))!== false) {
if ($flie!="." && $file!="..") {
if (is_dir($dir."/".$file)) {
$files[$file] = my_scandir($dir."/".$file);
} else {
$files[] = $dir."/".$file;
}
}
}
closedir($handle);
return $files;
}
}
}
?>

写出一个正则表达式,过虑网页上的所有JS/VBS脚本(即把script标记及其内容都去掉):

<?php
header("content-type:text/html;charset=utf-8");

$script = "以下内容不显示:<script type='text/javascript'>alert('cc');</script>";
$pattern = '/<script[^>]*?>.*?</script>/si';

echo preg_replace($pattern, "脚本内容", $script);//以下内容不显示:脚本内容
?>

php中邮箱地址正则表达式

$pattern = "/^([0-9A-Za-z\\-_\\.]+)@([0-9a-z]+\\.[a-z]{2,3}(\\.[a-z]{2})?)$/i";
if(preg_match($pattern,$email))
{
		echo "邮箱正确";
}

如何取img属性值 src
<?php
$pattern ='<img.*?src="(.*?)">';
$html = '<img id="pic" name="pic" src="aaa.jpg" style="width: 640px;">';
preg_match($pattern,$html,$matches);
echo $matches[1];
?>
获取文件相对路径的方法
<?php
 $a = '/a/b/c/d/e.php';
 $b = '/a/b/12/34/c.php';
 //../../12/34/c.php
 echo getRelativelyPath($a,$b);
 //求$b相对于$a的相对路径
 function getRelativelyPath($a,$b){ 
 $a=explode('/',$a);
 $b=explode('/',$b);
 var_dump($a);
 //print_r($b);
 $c=array_values(array_diff($a,$b));
 $d=array_values(array_diff($b,$a));
 // var_dump($c);
 //var_dump($d);
 array_pop($c);
 foreach($c as &$v){
 $v='..';
 }
 var_dump($c);
 var_dump($d);
 $arr=array_merge($c,$d);
 var_dump($arr);
 $str=implode("/",$arr);
 echo $str;
}
客户端及服务器端IP
$_SERVER['REMOTE_ADDR'] :客户端IP,也有可能是代理IP
$_SERVER['SERVER_ADDR']:服务器端的ip地址