PHP基础知识-函数

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;
```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值