php常用
- 敏感词过滤
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;
```