Maison > Article > développement back-end > Plus de 20 astuces PHP courantes qui valent la peine d'être collectées (partagées)
Cet article partagera avec vous quelques techniques et méthodes couramment utilisées dans le développement PHP réel, afin que tout le monde puisse passer plus de temps à pêcher. Venez collectionner et apprendre !
1. Résoudre les problèmes inter-domaines
public function __construct() { parent::__construct(); header('Access-Control-Allow-Origin:*'); //跨域 }
2. json_encode Le chinois ne transcode pas
die( json_encode( $result,JSON_UNESCAPED_UNICODE ) );
3. $users = array(
array('name' => 'xiao1', 'age' => 20),
array('name' => 'xiao2', 'age' => 18),
array('name' => 'xiao3', 'age' => 22)
);
/*按照年龄升序*/
//要将age提取出来存储到一维数组里,然后按照age升序排列
$ages= array_column($users, 'age');
array_multisort($ages, SORT_ASC, $users);
/*先按照年龄升序,再按照姓名降序*/
$ages= array_column($users, 'age');
$names = array_column($users, 'name');
array_multisort($ages, SORT_ASC, $names, SORT_DESC, $users);
ini_set("display_errors", "On");
error_reporting(E_ALL | E_STRICT);
//list使用
public function test(){
list($name, $sex) = $this->getInfo();
echo "姓名:{$name},性别:{$sex}";
}
public function getInfo(){
return ['张三', '男'];
}
//输出:姓名:张三,性别:男
$array = [
['id'=>'99', 'name'=>'九十九'],
['id'=>'88', 'name'=>'八十八'],
['id'=>'77', 'name'=>'七十七'],
];
$arr1 = array_column($array, 'name');
//输出:array (0 => '九十九',1 => '八十八',2 => '七十七',)
$arr2 = array_column($array, 'name', 'id');
//输出:array ( 99 => '九十九', 88 => '八十八', 77 => '七十七',)
$ids = array_column($array, 'id'); $arrayCombine = array_combine($ids, $array); /*$arrayCombine 输出: array ( 99 => array ( 'id' => '99', 'name' => '九十九', ), 88 => array ( 'id' => '88', 'name' => '八十八', ), 77 => array ( 'id' => '77', 'name' => '七十七', ), )*/
$array = array(0,1,0,2,null,1,3,4,null,0);
$array = array_values(array_unique(array_diff($array, [0, null]))); //去除0,null;去重
var_export($array);
/*输出:
array (
0 => 1,
1 => 2,
2 => 3,
3 => 4,
)
*/
Convertissez les secondes en heures, minutes et secondes,
gmstrftime.$r = gmstrftime('%H:%M:%S',(3600*23)+123); var_export($r); //输出: '23:02:03'
L'interface renvoie 1 normalement et -1 anormalement. Si les données sont vides, c'est 1 ; -1 est une exception de paramètre ou une erreur logique.
round($x, 2);
$num = "13711111111";
$str = substr_replace($num,'****',3,4);
Scénarios d'utilisation : Un petit saut de ligne a en fait différentes implémentations sur différentes plates-formes.
À l'origine, /n est utilisé pour remplacer les sauts de ligne dans le monde Unix, mais afin de refléter la différence, Windows utilise /r/n. Ce qui est plus intéressant, c'est que /r est utilisé sous Mac. PHP_EOL est une variable qui a été définie en php, représentant le caractère de nouvelle ligne de php. Cette variable changera selon la plateforme. Elle sera /r/n sous windows, /n sous linux, et /r sous mac. 13. PHP détermine si la clé du tableau existe isset(), array_key_exists(), empty()$array = ['a'=>'我是第一个', 'b'=>'我是第二个', 'c'=>'我是第三个', 'f' => null];
if(isset($array['a'])) {
echo 'a存在 ';
} else {
echo 'a不存在 ';
}
if(array_key_exists('d', $array)) {
echo 'd存在 ';
} else {
echo 'd不存在 ';
}
if (empty($array['f'])) {
echo 'f不存在';
} else {
echo 'f存在,且不为 null,0,"0",false';
}
//a存在 d不存在 f不存在
Parfois, il y a. un tel paramètre derrière certaines adresses ?_=1553829159194
http://***/index/index?_=1553829159194
Facteur d'outil de test d'interface recommandé
$distName = '南山区';
$lastChar = mb_substr($distName, -1);
if($lastChar=='区'){
$lastChar = mb_substr($distName, 0, -1);
}
echo $lastChar;
La structure des données renvoyée par l'arrière-plan :
{"eat":["大米","小麦"],"drink":["水","茶"]}
[{"name":"吃的","list":["大米","小麦"]},{"name":"喝的","list":["水","茶"]}]
Créer avec mkdir ne pose aucun problème sous Windows, mais utiliser mkdir pour créer un dossier apparaîtra sous Linux Il n'y a pas d'autorisation maximale de 0777 ; vous devez donc utiliser à nouveau la fonction chmod (la fonction chmod est destinée à la situation où les autorisations du dossier créé sous Linux sont insuffisantes)
//若目录不存在则创建目录 $filePath = '../file/20900101'; if(@!file_exists($filePath)){ mkdir($filePath, 0777, true); chmod($filePath, 0777); }
code
$temp = [ [ 'id' => 1, 'name' => 'name1', 'age' => 'age1', 'time' => 'time1' ], [ 'id' => 2, 'name' => 'name2', 'age' => 'age2', 'time' => 'time2' ] ]; # 清空原数据 $data = $temp; foreach ($data as &$value){ $value = []; } echo 'e03b848252eb9375d56be284e690e873'; print_r($data); # 重置原数据 $data = $temp; foreach ($data as &$value){ $value = [ 'hobby' => 1 ]; } print_r($data); # 追加原数据 $data = $temp; foreach ($data as &$value){ $value['hobby'] = 1; } print_r($data);
Array ( [0] => Array ( ) [1] => Array ( ) ) Array ( [0] => Array ( [hobby] => 1 ) [1] => Array ( [hobby] => 1 ) ) Array ( [0] => Array ( [id] => 1 [name] => name1 [age] => age1 [time] => time1 [hobby] => 1 ) [1] => Array ( [id] => 2 [name] => name2 [age] => age2 [time] => time2 [hobby] => 1 ) )
public function test() {
$url = self::getUrl('http://www.test.com', ['id' => 3, 'other' => '好的']);
echo $url . '<br>'; //打印:http://www.test.com?id=3&other=%E5%A5%BD%E7%9A%84
echo urldecode($url); //打印:http://www.test.com?id=3&other=好的
}
public function getUrl($apiUrl, $param = []){
$param = http_build_query($param);
return $apiUrl . '?' . $param;
}
= =[]==, la nécessité de le forcer dépend de la situation réelle
$data = $data ? $data : (object)$data;
$data
为空时强转为 object
类型后,json_encode
的值是{}
,不强转的话则是
Auteur : Le Dongbo motivé Aigle des neiges
Apprentissage recommandé : "Tutoriel vidéo PHP"
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!