php function sensitive($post_content) { //定义数组、文件路径 $arr = array(); $path = 'sensitive'; //将文件逐行存储到数组 $file = @fopen($path,"r"); if($file !== false)//保证file指针一定存在 { while(!feof($file)) { $arr[] = fgets($file); } fclose($file); } //将数组中的敏感词汇逐一替换 foreach($arr as $key => $val) { $post_content = str_replace($val,'*',$post_content); } return $post_content; }
sensitive文件:
词1 词2 词3
# php cli模式
方式1://请求输入参数 fwrite(STDOUT, "请输入名字:"); //获得输入参数 $name = trim(fgets(STDIN)); //输出获得参数 fwrite(STDOUT, "你好, $name !");
命令行:
php 文件名 回车 请输入名字: Jane Eyre 回车 你好,Jane Eyre!
方式2:echo "<pre>"; print_r($argv); echo $argc;
命令行:
php 文件名 参数1 参数2 回车 array( '0'=>'文件名', '1'=>'参数1', '2'=>'参数2' ) 3
方式3:(仅在 register_argc_argv 打开时可用)php /* *$str、$arr中'x:'为必填参数,'x::'为可选参数 *可以通过 -a -b -c -d(可选,'='号传值)传入参数 *可以通过--kay1 --kay2(可选,'='号传值)传入参数 *必填参数不给值,会将后面输入的内容解析为参数的值 */ $str = "a:b:c:d::efg"; $arr = array( "kay1:", "kay2::", "kay3", "kay4", ); $options = getopt($str, $arr); print_r($options);
命令行:
php 文件名 -a 111 -b 112 -c 113 -d=114 --kay1 111 --kay2=112 回车 Array ( [a] => 111 [b] => 112 [c] => 113 [d] => 114 [kay1] => 111 [kay2] => 112 )
php文本搜索器<html> <head> <title>搜索指定文本</title> </head> <body> <form action="" method="post"> <p> <input type="test" name="str"/> <input type="submit" value="查询"/> </P> </form> <?php function searchFile($path,&$arr) { if(is_dir($path)) { $dp = dir($path); while($file = $dp->read()) { if($file != '.' && $file != '..') { searchFile($path.'/'.$file,$arr); } } $dp->close(); } if(is_file($path)) { $arr[] = $path; } } function getFile() { $dir = '.'; $arr = array(); searchFile($dir,$arr); return $arr; } $arr = getFile(); foreach($arr as $key => $val) { $content = file_get_contents($val); if(!empty($_POST['str']) && strstr($content,$_POST['str'])) { echo $val."<br>"; } } ?> </body> </html>
php存储空,0,false处理foreach($info as $key => $val){ if(empty($val) && $val !==0 && $val !==false){ $info[$key] = null; } }
php二维数组排序arr_sort($array,$sort_key,$sort_order=SORT_ASC,$sort_type=SORT_NUMERIC ) { //$sort_order=SORT_ASC、SORT_DESC //$sort_type=SORT_NUMERIC、SORT_STRING、SORT_REGULAR if(is_array($array)){ foreach ($array as $arr){ if(is_array($arr)){ $arrays[] = $arr[$sort_key]; }else{ return false; } } }else{ return false; } array_multisort($arrays,$sort_order,$sort_type,$array); return $array; }
php函数方法区别1,直接调函数名的叫函数,用对象调用的叫方法; 2,面向过程叫函数,面向对象叫方法;
xml、json解析function xmlParsing() { //第三个参数表示能解析<![CDATA['数据']]> $array = simplexml_load_file('123.xml','SimpleXMLElement',LIBXML_NOCDATA); echo "<pre>"; print_r($array); } function jsonParsing() { $file_open = fopen("123.json","r"); if($file_open) { for($i=1;!feof($file_open);$i++) { $array[$i] = fgets($file_open); } } fclose($file_open); //true解码为数组,false解码为对象 $array = json_decode($str,true); echo "<pre>"; print_r($array); }
数组解析为XML ``` function arr_to_xml($arr) { $xml = '<?xml version="1.0" encoding="utf-8"?>'."\n"; $xml.='<data>'."\n"; foreach ($arr as $key=>$val) { if(is_array($val,$xml)){ $xml.=arr_deal($val); }elseif (is_numeric($val)){ $xml.='<'.$key.'>'.$val.'</'.$key.'>'."\n"; }else{ $xml.='<'.$key.'><![CDATA['.$val.']]></'.$key.'>'."\n"; } } $xml.='</data>'."\n"; return $xml; } function arr_deal($arr,$xml) { foreach ($arr as $key=>$val) { if(is_array($val)){ $xml.=arr_deal($val); }elseif (is_numeric($val)){ $xml.='<'.$key.'>'.$val.'</'.$key.'>'."\n"; }else{ $xml.='<'.$key.'><![CDATA['.$val.']]></'.$key.'>'."\n"; } } return $xml; } ``` php正则匹配汉字 ``` 页面编码不同略有区别: GBK/GB2312:[x80-xff]+或[xa1-xff]+ UTF-8 :[x{4e00}-x{9fa5}]+/u ``` php位运算权限判定 ``` <?php //定义权限:111:RWX //可读权限向左移两位 define('R', 1<<2); //可写权限向左移一位 define('W', 1<<1); //执行权限不进行位移 define('X', 1<<0); //赋予权限:0b101=5=R|X $permission = R|X; //验证权限 echo '可以读:'.(($permission & R)?'Yes':'No').'<br/>'; echo '可以写:'.(($permission & W)?'Yes':'No').'<br/>'; echo '可执行:'.(($permission & X)?'Yes':'No'); ?> ``` php文件上传 ``` <?php $file = $_FILES['upload']?$_FILES['upload']:''; if(is_uploaded_file($file)){ $name = $file['name']; $type = $file['type']; $tmp_name = $file['tmp_name']; $error = $file['error']; $size = $file['size']; } if($error !== 0){ die('上传失败'); } if($type != 'png'){ die('图片格式必须为png'); } if($size > 1024*1024){ die('图片大小不能超过1M'); } $path = '/var/www/progect/picture/123.png' move_uploaded_file($tmp_name,$path); ``` php数据转json中文原样输出 ``` $arr = array('中文汉字','中文字符'); $str = json_encode($arr,JSON_UNESCAPED_UNICODE); echo $str; ```