Maison  >  Article  >  développement back-end  >  Plus de 20 astuces PHP courantes qui valent la peine d'être collectées (partagées)

Plus de 20 astuces PHP courantes qui valent la peine d'être collectées (partagées)

青灯夜游
青灯夜游avant
2021-07-29 18:47:172507parcourir

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 !

Plus de 20 astuces PHP courantes qui valent la peine d'être collectées (partagées)

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);

4 . Si php.ini sur le serveur Linux ferme l'invite d'erreur, ce qui entraîne des résultats de 406 500. Imprimer le message d'erreur.

ini_set("display_errors", "On");
error_reporting(E_ALL | E_STRICT);

5. L'utilisation de la liste

//list使用
public function test(){
    list($name, $sex) = $this->getInfo();
    echo "姓名:{$name},性别:{$sex}";
}
 
public function getInfo(){
    return ['张三', '男'];
}
 
//输出:姓名:张三,性别:男

6. L'utilisation de la fonction array_column()

$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 => '七十七',)

array_column() est utilisée avec array_combine().
  • $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' => '七十七', ), 
     )*/

7. Déduplication de tableau unidimensionnel, suppression de 0, null, réinitialisation de l'index

$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,
)
*/

8. Convertissez les secondes en heures, minutes et secondes

Convertissez les secondes en heures, minutes et secondes,

gmstrftime. 9. L'interface renvoie

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.

10. Arrondissez à 2 décimales.

round($x, 2);

11. Cachez les 4 chiffres du milieu de votre numéro de téléphone.

$num = "13711111111";
$str = substr_replace($num,'****',3,4);

12. Variable de saut de ligne PHP_EOL

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不存在

14. Importer des fichiers js avec des paramètres ?_=1553829159194

Parfois, il y a. un tel paramètre derrière certaines adresses ?_=1553829159194

http://***/index/index?_=1553829159194
    Ajoutez un horodatage après l'url pour vous assurer que l'url change à chaque fois, afin que le le cache du navigateur ne sera pas lu.
15. Outil de test d'interface

Facteur d'outil de test d'interface recommandé

16. Si le dernier mot est "zone", supprimez-le.

$distName = '南山区';
$lastChar = mb_substr($distName, -1);
if($lastChar=='区'){
    $lastChar = mb_substr($distName, 0, -1);
}
echo $lastChar;

17. Supposons que le contenu de la page soit le suivant :

La structure des données renvoyée par l'arrière-plan :

    {"eat":["大米","小麦"],"drink":["水","茶"]}
n'est pas bonne, le front-end doit donc correspondre au pertinent. champs, manger et boire sont des boissons.
  • Il est préférable de revenir comme ceci :
  • [{"name":"吃的","list":["大米","小麦"]},{"name":"喝的","list":["水","茶"]}]

18. Créez le répertoire 0777, utilisez mkdir et chmod ensemble

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);
    }
19 Attribution de référence dans foreach

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);
  • Imprimer
      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
              )
      
      )
    20, générateur d'URL

    public function test() {
    	$url = self::getUrl('http://www.test.com', ['id' => 3, 'other' => '好的']);
    	echo $url . &#39;<br>&#39;;     //打印: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 . &#39;?&#39; . $param;
    }

    21, écrire le formulaire d'objet de retour de tableau vide de l'interface.

    = =[]==, la nécessité de le forcer dépend de la situation réelle
    • $data = $data ? $data : (object)$data;
      $data为空时强转为  object类型后,json_encode的值是{}不强转的话则是
    • Adresse originale : https://juejin.cn/post/6973956902094897189 (mise à jour de temps en temps)
    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!

  • Déclaration:
    Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer