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

青灯夜游
Libérer: 2023-04-10 12:48:01
avant
2481 Les gens l'ont consulté

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:*');    //跨域
}
Copier après la connexion

2. json_encode Le chinois ne transcode pas

die( json_encode( $result,JSON_UNESCAPED_UNICODE ) );
Copier après la connexion

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);
Copier après la connexion

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);
Copier après la connexion

5. L'utilisation de la liste

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

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 => '七十七',)
Copier après la connexion

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' => '七十七', ), 
     )*/
    Copier après la connexion

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,
)
*/
Copier après la connexion

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);
Copier après la connexion

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

$num = "13711111111";
$str = substr_replace($num,'****',3,4);
Copier après la connexion

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不存在
Copier après la connexion

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;
Copier après la connexion

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":["水","茶"]}
    Copier après la connexion
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":["水","茶"]}]
    Copier après la connexion

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);
    }
    Copier après la connexion
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 &#39;<pre class="brush:php;toolbar:false">&#39;;
    print_r($data);
    
    # 重置原数据
    $data = $temp;
    foreach ($data as &$value){
        $value = [
            &#39;hobby&#39; => 1
        ];
    }
    print_r($data);
    
    # 追加原数据
    $data = $temp;
    foreach ($data as &$value){
        $value[&#39;hobby&#39;] = 1;
    }
    print_r($data);
    Copier après la connexion
  • 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
            )
    
    )
    Copier après la connexion
20, générateur d'URL

public function test() {
	$url = self::getUrl(&#39;http://www.test.com&#39;, [&#39;id&#39; => 3, &#39;other&#39; => &#39;好的&#39;]);
	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;
}
Copier après la connexion

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;
    Copier après la connexion
    $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!

Étiquettes associées:
php
source:掘金--有上进心的东伯雪鹰
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!