PHP常用基础&&小技巧(一)

86 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第6天,点击查看活动详情

1.json_encode和json_decode
json_encode($json,JSON_UNESCAPED_UNICODE );//中文不转码

json_decode($json,TRUE);//当该参数为 TRUE 时,将返回数组,FALSE 时返回对象
2.简单跨域和复杂跨域
header('Access-Control-Allow-Origin: *');// 允许 $originarr 数组内的 域名跨域访问--简单跨域
header('Access-Control-Allow-Headers:x-requested-with,Content-Type,X-CSRF-Token,language');//添加类似自定义响应头时会出现复杂跨域
2.1post 复杂请求截图

image.png

2.2报错截图

image.png

2.3可行的一个解决方案
//服务器域名配置在location中增加如下一行内容error_page 405 =200  $request_uri; 
如下所示:
server {
    listen       80;
    server_name  localhost;
    #charset koi8-r;
    #access_log  logs/host.access.log  main;

    location / {
        root   /mnt/svnhouse/publish;
        index  index.html;
        error_page 405 =200  $request_uri;
      }
3.函数 array_column()的相关使用
$array = [
    ['id'=>'4', 'name'=>'小明'],
    ['id'=>'5', 'name'=>'小红'],
    ['id'=>'6', 'name'=>'小花'],
];
$arr1 = array_column($array, 'name');//只取名字   
//输出:array (0 => '小明',1 => '小红',2 => '小花')
$arr2 = array_column($array, 'name', 'id'); //id做下标,名字为值
//输出:array (4 => '小明',  5 => '小红',  6 => '小花')

//array_column() 与 array_combine() 搭配使用
$ids = array_column($array, 'id');//取出id作为二维数组下标
$arrayCombine = array_combine($ids, $array);结合原数组并打印输出结果,如下所示:
/*$arrayCombine 输出:
 array ( 
     4 => array ( 'id' => '4', 'name' => '小明', ), 
     5 => array ( 'id' => '5', 'name' => '小红', ), 
     6 => array ( 'id' => '6', 'name' => '小花', ), 
 )*/
4.日期相关
echo "今天:".date("Y-m-d");       
echo "昨天:".date("Y-m-d",strtotime("-1 day"));       
echo "明天:".date("Y-m-d",strtotime("+1 day"));    
echo "一周后:".date("Y-m-d",strtotime("+1 week"));       
echo "一周零两天四小时两秒后:".date("Y-m-d G:H:s",strtotime("+1 week 2 days 4 hours 2 seconds"));       
echo "下个星期四:".date("Y-m-d",strtotime("next Thursday"));       
echo "上个周一:".date("Y-m-d",strtotime("last Monday"));       
echo "一个月前:".date("Y-m-d",strtotime("last month"));       
echo "一个月后:".date("Y-m-d",strtotime("+1 month"));       
echo "十年后:".date("Y-m-d",strtotime("+10 year"));
5.字符串数组互转
explode();//字符串分割为数组
$str = "www.runoob.com";
print_r (explode(".",$str));
输出:Array
(
    [0] => www
    [1] => runoob
    [2] => com
)
implode();//数组分割为字符串
//用不同的字符分离数组元素
$arr = array('Hello','World!','Beautiful','Day!');  
echo implode(" ",$arr);  //Hello World! Beautiful Day!  
echo implode("+",$arr);  //Hello+World!+Beautiful+Day! 
echo implode("-",$arr);  //Hello-World!-Beautiful-Day!
echo implode("X",$arr);  //HelloXWorld!XBeautifulXDay!
6.创建0777目录,mkdir,chmod配合使用
//linux使用mkdir创建文件夹会出现没有最大权限0777的情况;使用chmod函数
//若目录不存在则创建目录
$filePath = '../file/20221205';
if(@!file_exists($filePath)){
    mkdir($filePath, 0777, true);
    chmod($filePath, 0777);
}
7.字符串截取方法
$str = 'hello';
//适合截取英文和数组,中文会乱码。
echo substr($str,1,2);//输出el  

//适合截取中文
echo mb_substr('这个真的很nice',0,3,'utf-8'); //输出这个真   

//按字节截取
echo mb_strcut('这个真的很nice',0,3,'utf-8'); //输出这  

//查找 "world" 在 "Hello world!" 中是否存在,如果是,返回该字符串及后面剩余部分
echo strstr("Hello world!","world");  // 输出 world!