PHP基礎知識-函數

版權聲明:本文爲博主原創文章,未經博主允許不得轉載。 https://blog.csdn.net/aojianmo2012/article/details/54834991

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;
```
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章