この記事では、誰もがより多くの時間を釣りに費やすことができるように、実際の PHP 開発でよく使用されるテクニックとメソッドをいくつか紹介します。
1. クロスドメインの問題を解決する
public function __construct() { parent::__construct(); header('Access-Control-Allow-Origin:*'); //跨域 }
2.json_encode中国語 トランスコーディングなし
die( json_encode( $result,JSON_UNESCAPED_UNICODE ) );
3. 2 次元配列のソート
$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。 Linux サーバー上の php.ini がエラー プロンプトを閉じた場合、結果は 406、500 になります。エラーメッセージを印刷します。
ini_set("display_errors", "On"); error_reporting(E_ALL | E_STRICT);
5. リストの使用
//list使用 public function test(){ list($name, $sex) = $this->getInfo(); echo "姓名:{$name},性别:{$sex}"; } public function getInfo(){ return ['张三', '男']; } //输出:姓名:张三,性别:男
6. 関数の使用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() と 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 を使用します。 、1 次元配列の重複排除、0、null の削除、インデックスのリセット
#$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. 秒を時、分、秒に変換
#秒を時、分、秒に変換する、$r = gmstrftime('%H:%M:%S',(3600*23)+123); var_export($r); //输出: '23:02:03'
9. インターフェイスは
インターフェイスは通常は 1 を返し、異常な場合は -1 を返します。データが空の場合は 1、-1 はパラメータ例外または論理エラーです。10. 小数点以下第 2 位に四捨五入します。 round($x, 2);
11. 携帯電話番号の中の 4 桁を非表示にします。 $num = "13711111111";
$str = substr_replace($num,'****',3,4);
12. 改行変数 PHP_EOL使用シナリオ: 小さな改行は、実際にはさまざまなプラットフォームで機能します。は異なる実装です。
元々、/n は Unix の世界では改行を置き換えるために使用されますが、その違いを反映するために Windows では /r/n が使用されます。さらに興味深いのは、Mac では /r が使用されることです。
PHP_EOL は php で定義されている変数で、php の改行文字を表します。
この変数はプラットフォームに応じて変わります。Windows では /r/n、Linux では /n、Mac では /r になります。
#13. PHP は、配列キーが存在するかどうかを判断します 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不存在
アドレスの後にそのようなパラメーターがある場合がありますか?_=1553829159194
URL が読み取られないように毎回変更されるように、URL の後にタイムスタンプ タイムスタンプを追加します。ブラウザはそれをキャッシュしました。# #http://***/index/index?_=1553829159194
推奨インターフェーステストツール postman
$distName = '南山区';
$lastChar = mb_substr($distName, -1);
if($lastChar=='区'){
$lastChar = mb_substr($distName, 0, -1);
}
echo $lastChar;
17. ページのコンテンツが次のとおりであると仮定します:
によって返されるデータ構造背景:
{"eat":["大米","小麦"],"drink":["水","茶"]}
次のように返すのが最善です:
[{"name":"吃的","list":["大米","小麦"]},{"name":"喝的","list":["水","茶"]}]
Windows では mkdir を使用してフォルダーを作成する場合は問題ありませんが、Linux で mkdir を使用してフォルダーを作成する場合、最大権限は 0777 になります。再度 chmod 関数を使用する必要があります (chmod 関数は Linux 用に作成されています。フォルダー権限が不十分です)
//若目录不存在则创建目录 $filePath = '../file/20900101'; if(@!file_exists($filePath)){ mkdir($filePath, 0777, true); chmod($filePath, 0777); }
コード
$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;
}
21 、書き込みインターフェイスの空の配列はオブジェクト フォーム
$data
が空です に強制されます。 json_encode
の値は {}
です。 が強制的に変換されない場合、
==[ になります。 ]==、強制的に変換する必要があるかどうかは実際の状況によって異なります
$data = $data ? $data : (object)$data;
元のアドレス: https://juejin.cn/post/6973956902094897189 (時刻から更新)まで) 推奨学習: 「PHP ビデオ チュートリアル 」
以上が収集する価値のある 20 以上の一般的な PHP ヒント (共有)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。