遍历一个文件夹下的所有文件和子文件夹
<?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地址