PHP開発に関する9つの経験の要約
1. 第一の意識: 安全性
ほとんどの場合、私たちが開発する Web プログラムはデータベースを扱う必要があるため、SQL インジェクションは避けては通れない、議論が必要な問題であると言えます。そして近年、XSS や CSRF などの攻撃が流行し、「ハッカー」に新しい武器を与えたかのように見える一方で、私たちは常に受動的な状態にあります。ただし、次の 2 つの原則を覚えておく必要があります:
1. ユーザーが入力した内容を決して信用しないでください。 (古いことわざですが、本当です)
2. 出力する必要があるデータをエスケープします。
簡単に言うと、入力をフィルターし、出力をエスケープします
初心者の場合は、次のようなクエリ ステートメントを使用しないでください:
ユーザー名 WHERE ユーザー名 = $_POST['ユーザー名'] AND パスワード = $_POST['パスワード'];
から選択します。また、昔ながらの mysql 操作を使用する代わりに、PDO または Mysqli を使用します。
CSRFソリューションに関しては、現在私たちが取り組んでいるのは、フォーム送信ごとにトークン値を設定し、フォーム送信時に検証するというものです。
2. 各比較演算子の違いを明確に理解する
PHP の比較演算子、これは実際には小さな注意点とも言えますが、場合によっては非常に重要です。たとえば、== を使用するか === を使用するかを明確に考える必要があることがよくあります。strpos() 関数を使用したことがある場合は、次のコードで直感的に理解できるかもしれません。


3. elseの使用を減らすことができる場合は、elseの使用を減らしてください
これは、私がプログラミングに初めて触れたときから抱いていたアイデアのようです。if(){}else{} を見るたびに、この段落は実際にはもっとうまく書けるのではないかと感じるからです。 else キーワードの使用を減らすと、コードは 2 行減ります! はい、2 行も私たちの追求であり、私の経験からすると、else が少ないコードのほうが読みやすいように思えます。
if(この条件) { $x = 5 } else{ $x = 10;}
$xのデフォルト値が10の場合、次のように書くと良いでしょう:
$x = 10;
if(この条件)
{ $x = 5 }
;4.不要な括弧を削除します
ここでの目的は、実際には else キーワード部分と同じです。次のような状況では、コードを短くして読みやすくすることを目的としています。
if ($gollum == 'ハーフリング') { $height --;実際には、次のようになります:
if ($gollum == 'halfling') $height --;
こんなこともできます:

多くの場合、いくつかの文字列を置換する必要があります。PHP には、この目的を達成できる関数がいくつかあります。
str_replace()ereg_replace()
preg_replace()
どうしても正規のマッチングを使用する必要がある場合は preg_replace() を使用し、置換が可能であれば str_replace() を使用してください。不完全な統計によると、これら 3 つの中で str_replace() の効率が最も高いためです。
6. 三項演算子を使用します
三項演算子を使用すると、大量の if else ステートメントが削除され、コードが短くてクールになると多くの人が感じているかもしれません。
$host = strlen($host) > 0 ? $host : htmlentities($host);
7. キャッシュを使用する
現在、PHP で最も人気のあるキャッシュ テクノロジは Redis と Memcached です。PHP の公式ドキュメントには、Memcached の使用に関するチュートリアルもあります。Redis については、現在研究中であり、いくつかのチュートリアルを提供する予定です。すべてがうまくいけば、未来。
8.フレームワークを利用する
フレームワークには、パフォーマンスが低下する可能性を除けば、開発を高速化できるだけでなく、快適にコードを書くことができるため、使用しない理由はないようです。多くのセキュリティ問題に対する適切な解決策が得られます。最初にLaravelをお勧めしますが、Yii2 SlimやSymfonyなどのフレームワークは非常に優れており、Symfony以外は試したことがないため、最終的には残りの3つを使用したことがあります。ただし、私が推奨する Laravel があなたに適さない場合もあります。それは個人の好みによって異なります。
9. strlen()の代わりにisset()を使う
プロジェクトコード内の文字列の長さに基づいて条件判断を行う必要がある場合は、同じ条件下では isset() の方が約 5 倍高速であるため、現時点では isset() を直接使用することを強くお勧めします。 strlen() よりも次のようになります:

上記の 2 つの条件判断は同じ目的を達成できますが、最初の条件判断を使用することをお勧めします。
であると言えます。
php把负数转为正整数的方法:1、使用abs()函数将负数转为正数,使用intval()函数对正数取整,转为正整数,语法“intval(abs($number))”;2、利用“~”位运算符将负数取反加一,语法“~$number + 1”。

实现方法:1、使用“sleep(延迟秒数)”语句,可延迟执行函数若干秒;2、使用“time_nanosleep(延迟秒数,延迟纳秒数)”语句,可延迟执行函数若干秒和纳秒;3、使用“time_sleep_until(time()+7)”语句。

php字符串有下标。在PHP中,下标不仅可以应用于数组和对象,还可应用于字符串,利用字符串的下标和中括号“[]”可以访问指定索引位置的字符,并对该字符进行读写,语法“字符串名[下标值]”;字符串的下标值(索引值)只能是整数类型,起始值为0。

php除以100保留两位小数的方法:1、利用“/”运算符进行除法运算,语法“数值 / 100”;2、使用“number_format(除法结果, 2)”或“sprintf("%.2f",除法结果)”语句进行四舍五入的处理值,并保留两位小数。

在php中,可以使用substr()函数来读取字符串后几个字符,只需要将该函数的第二个参数设置为负值,第三个参数省略即可;语法为“substr(字符串,-n)”,表示读取从字符串结尾处向前数第n个字符开始,直到字符串结尾的全部字符。

判断方法:1、使用“strtotime("年-月-日")”语句将给定的年月日转换为时间戳格式;2、用“date("z",时间戳)+1”语句计算指定时间戳是一年的第几天。date()返回的天数是从0开始计算的,因此真实天数需要在此基础上加1。

方法:1、用“str_replace(" ","其他字符",$str)”语句,可将nbsp符替换为其他字符;2、用“preg_replace("/(\s|\ \;||\xc2\xa0)/","其他字符",$str)”语句。

查找方法:1、用strpos(),语法“strpos("字符串值","查找子串")+1”;2、用stripos(),语法“strpos("字符串值","查找子串")+1”。因为字符串是从0开始计数的,因此两个函数获取的位置需要进行加1处理。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

SublimeText3 英語版
推奨: Win バージョン、コードプロンプトをサポート!

MantisBT
Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

mPDF
mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン

ホットトピック



