反注入
$string = addslashes(htmlspecialchars($string, ENT_QUOTES));
htmlspecialchars_decode()
编码转换:
base64_encode()
字符串
mb_strimwidth($item[3],0,12,"…",'utf-8');//mb_substr();
string strtr ( string str, string from, string to )
string strtr ( string str, array replace_pairs )
eg:
$addr
= strtr($addr,""aa"o","aao");
$trans
= array("hello"
=> "hi","hi"=>"hello");
echo strtr("hi all, I said hello",$trans);
当前用户域名:
http://{$_SERVER['HTTP_HOST']}
目录操作:
php获取当前文件所在目录
1. php内置的函数getcwd()可以获得,函数原型:
string getcwd ( void )
成功返回当前目录,失败返回false。
例如: echo getcwd();
2. dirname(__FILE__)
函数原型:
string dirname ( string path )
返回文件所在目录。其中__FILE__是php内置常量,文件的绝对路径。
/** * 服务端发起一个post请求 * @param string $apiUrl * @param array $fields * @return array $response; */ function httpRequest($apiUrl,$fields) { $postData=json_encode($fields); $referrer=""; $urlInfo=parse_url($apiUrl); if($referrer=="") { isset($_SERVER["SCRIPT_URI"]) && $referrer = $_SERVER["SCRIPT_URI"]; } if(!isset($urlInfo["port"])) { $urlInfo["port"]=80; } //构建一个http请求 $request = ''; $request.= "POST ".$urlInfo["path"]." HTTP/1.0\n"; $request.="Host: ".$urlInfo["host"]."\n"; $request.="Referer: $referrer\n"; $request.="Content-type: application/json\n"; $request.="Content-length: ".strlen($postData)."\n"; $request.="Connection: close\n"; $request.="\n"; $request.=$postData."\n"; //DebugInfo("[fun.httpRequest]-[$request]",4); $response=''; if(!empty($postData)) { //$startTIme=microtime(true); $fs= fsockopen($urlInfo["host"],$urlInfo["port"]); fputs($fs, $request); //获取返回结果 while(!feof($fs)) { $buffer = fgets($fs, 4096); if (substr($buffer,0,4)=='HTTP') { list(,$statusCode,)=explode(' ',$buffer); $response.=$buffer; } } //获取json结果集 if($statusCode=='201') { $jsonData=$buffer; } else { $jsonData=''; } fclose($fs); $response=array('code'=>$statusCode,'data'=>$jsonData); } return $response; }
/** * 多进程写文件 * * @param string $filename 文件路径 * @param string $content 文件内容 * @param string $mode 打开模式 * @return null */ function fileWrite($filename, $content, $mode = 'w') { $filename_lock = $filename . '.lock'; while(1) { if (file_exists($filename_lock)) { usleep(500); // 延迟500ms重试 } else { touch($filename_lock); //加锁 $f = fopen($filename, $mode); fwrite($f, $content); fclose($f); unlink($filename_lock); break; } } if (file_exists($filename_lock)) { unlink($filename_lock); } }