PHP基础知识-函数

来源:互联网 发布:生命一个数组 编辑:程序博客网 时间:2024/05/17 21:43

php常用

  1. 敏感词过滤

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. 方式1:


//请求输入参数
fwrite(STDOUT, "请输入名字:");
//获得输入参数
$name = trim(fgets(STDIN));
//输出获得参数
fwrite(STDOUT, "你好, $name !");

命令行:


php 文件名 回车
请输入名字:
Jane Eyre 回车
你好,Jane Eyre!

  1. 方式2:


echo "<pre>";
print_r($argv);
echo $argc;

命令行:


php 文件名 参数1 参数2 回车
array(
'0'=>'文件名',
'1'=>'参数1',
'2'=>'参数2'
)
3

  1. 方式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
)

  1. 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>

  1. php存储空,0,false处理


foreach($info as $key => $val){
if(empty($val) && $val !==0 && $val !==false){
$info[$key] = null;
}
}

  1. 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;
}

  1. php函数方法区别


1,直接调函数名的叫函数,用对象调用的叫方法;
2,面向过程叫函数,面向对象叫方法;

  1. 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);
}

  1. 数组解析为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;}```
  1. php正则匹配汉字
```页面编码不同略有区别:GBK/GB2312:[x80-xff]+或[xa1-xff]+UTF-8     :[x{4e00}-x{9fa5}]+/u```
  1. 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');?>```
  1. 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);```
  1. php数据转json中文原样输出
```$arr = array('中文汉字','中文字符');$str = json_encode($arr,JSON_UNESCAPED_UNICODE);echo $str;```
0 0
原创粉丝点击