PHP でよく使用される文字列フォーマット関数の概要、php 関数_PHP チュートリアル

WBOY
リリース: 2016-07-13 10:13:37
オリジナル
858 人が閲覧しました

PHPでよく使われる文字列整形関数、php関数のまとめ

文字列の書式設定は、文字列を特定の形式に処理することです。通常、ユーザーがフォームからサーバーに送信するデータは文字列の形式になっており、目的の出力効果を実現するには、これらの文字列を使用する前に特定の形式で処理する必要があります。一般的に見られる文字列書式設定関数は以下のとおりです:

注: PHP で提供される文字列関数によって処理される文字列のほとんどは、元の文字列を変更せず、フォーマットされた新しい文字列を返します。

1. スペースと文字列のパディング関数を削除します

スペースも有効な文字であり、文字列内の位置を占めます。ユーザーがフォームにデータを入力するとき、意図せずに意味のないスペースを入力してしまうことがよくあります。したがって、PHP スクリプトがフォームを通じて処理されたデータを受け取ると、最初に処理されるのは文字列内の余分なスペースやその他の意味のない記号です。この作業は、PHP で ltrim()、rtrim()、trim() 関数を使用して実行できます。これら 3 つの関数の構文形式は同じですが、機能が異なります。構文形式は次のとおりです:

コードをコピーします コードは次のとおりです:

string ltrim(string str[,string charlist]) //文字列の左側からスペースまたはその他の事前定義された文字を削除します
string rtrim(string str[,string charlist]) //文字列の右側から空白文字またはその他の事前定義された文字を削除します
stringrim(string str[,string charlist]) //文字列の両端から空白文字またはその他の事前定義された文字を削除します

これら 3 つの関数は、それぞれ文字列の左端、右端、両端から空白文字またはその他の事前定義された文字を削除するために使用されます。処理された結果は新しい文字列の形式で返され、元の文字列は変更されません。最初のパラメータ str は処理される文字列であり、必須です。 2 番目のパラメータ charlist は、削除する特殊シンボルを指定するために使用されるフィルタ文字列です。このパラメータはオプションです。フィルタ文字列を指定しない場合、デフォルトで次の文字が削除されます。

★"":スペース
★「0」:NULL
★「t」:タブ文字
★「n」:改行
★「r」: 入力

さらに、「..」記号を使用して、削除する必要がある範囲を指定することもできます。たとえば、「0..9」や「a..z」など、ASCII コード値の数字や小文字を削除します。 。使用コードは次のとおりです:

コードをコピーします コードは次のとおりです:

$str = "123 これはテストです ..."; // 左側の数字と右側の省略記号で始まるテスト文字列を宣言します
echo ltrim($str,"0..9"); //文字列の左側の数字をフィルタリングして出力します。これはテストです...
echo rtrim($str,".") //文字列の右側にあるすべての「.」をフィルタリングします。出力: 123 これはテストです
echo trim ($str, "0..9 A..Z ."); // 文字列の両端の数字、大文字、および "." をフィルタリングして出力: これはテストです
?>

必要に応じて文字列の内容をフィルターで除外できるだけでなく、str_pad() 関数を使用して必要に応じて文字列を埋めることもできます。データのペアリングや配置など、一部の機密情報を保護するために使用できます。その関数のプロトタイプは次のとおりです:

コードをコピーします コードは次のとおりです:

文字列 str_pad(文字列入力, int パッド長[,文字列 パッド文字列[, int パッドタイプ]])

この関数には 4 つのパラメータがあり、最初のパラメータは処理する文字列を指定します。 2 番目のパラメーターは、処理された文字列の長さを指定します。値が元の文字列の長さより小さい場合、操作は実行されません。 3 番目のパラメータは、パディングに使用される文字列を指定します。これはオプションのパラメータです。指定しない場合、デフォルトでスペースがパディングに使用されます。最後のパラメータはパディングの方向を指定します。これには、STR_PAD_BOTH、STR_PAD_LEFT、および STR_PAD_RIGHT の 3 つのオプションの値があり、それぞれ文字列の両端、左側、右側のパディングを表します。これもオプションのパラメータです。指定しない場合、デフォルト値は STR_PAD_RIGHT です。関数 str_pad() の使用コードは次のとおりです:
コードをコピーします コードは次のとおりです:

$str = "ランプ";
echo str_pad($str,10); //指定された長さは 10 で、デフォルトでは右側の「LAMP」を埋めるためにスペースが使用されます
echo str_pad($str,10,"-="STR_PAD_LEFT); //長さを 10 に指定し、左側にパディングする「-=-=-=LAMP」を指定します
echo str_pad($str,10,"_"STR_PAD_BOTH); //長さを10に指定し、左側を埋めるように「___LAMP___」を指定します
?>

2. 文字列の大文字と小文字の変換

PHP には 4 つの文字列大文字小文字変換関数が用意されています。それらはすべて、変換する文字列を渡すオプションのパラメータを 1 つだけ持っています。これらの関数を直接使用して、大文字と小文字の変換操作を完了できます。関数 strtoupper() は、指定されたすべての文字列を大文字に変換するために使用され、関数 strto lower() は、指定されたすべての文字列を小文字に変換するために使用されます。最初の文字は大文字に変換されますが、残りの文字は変更されません。関数 ucwords() を使用して、指定された文字列内のスペースで区切られたすべての単語の最初の文字が大文字に変換されます。以下に示すように、次のプログラムはこれらの関数の使用コードです。

コードをコピーします コードは次のとおりです:
$lamp = "lamp は Linux、Apache、MySQL、PHP で構成されています";
echo strto lower($lamp); //出力: ランプは Linux、Apache、mysql、php で構成されます
echo strtoupper($lamp); //出力: LAMP は LINUX、APACHE、MYSQL、PHP で構成されます
echo ucfirst($lamp); //出力: Lamp は Linux、Apache、MySQL、PHP で構成されています
echo ucwords($lamp); //出力: Lamp は Linux、Apache、MySQL、PHP で構成されます
?>

これらの関数は、説明に記載されているとおりにのみ機能します。文字列の最初の文字が大文字で残りが小文字であることを確認するには、一致メソッドを使用する必要があります。以下に示すように:

コードをコピーします コードは次のとおりです:
$lamp = "lamp は Linux、Apache、MySQL、PHP で構成されています";
echo ucfirst(strto lower($lamp)); //出力: Lamp は Linux、Apache、mysql、php
で構成されます ?>

3. HTML タグに関連する文字列の書式設定

URL に添付された HTML 入力フォームとリソースは、ユーザーがサーバーにデータを送信する方法です。適切に扱わないと、ハッカーがサーバーを攻撃する入り口となる可能性があります。たとえば、ユーザーが記事を公開するときに、その記事に HTML 書式設定タグや JavaScript ページ リダイレクト コードが含まれている場合、それを直接出力して表示すると、ページのレイアウトが確実に変更されます。これらのコードはブラウザに送信されるため、ブラウザはそれらを有効なコードとして解釈します。したがって、PHP スクリプトでは、ユーザーが送信したデータ コンテンツが最初に処理される必要があります。 PHP は、HTML テキストの出力を効果的に制御できる、非常に包括的な HTML 関連の文字列書式設定関数を提供します。

①関数nl2br()

ブラウザに出力される文字列「
」は改行をマークしており、多くの人は改行記号として「n」を使用することに慣れていますが、ブラウザはこの文字列の改行文字を認識しません。複数行のテキストがある場合でも、ブラウザにはその行のみが表示されます。 nl2br() 関数は、文字列内の各改行「n」の前に HTML 改行文字「
」を挿入します。この関数の使用方法は次のとおりです:


コードをコピーします コードは次のとおりです:
echo nl2br("One line.nAnother line."); //「n」の前に「
」マークを追加します
/*次の 2 行の結果を出力します
1 行。

別の行。
*/
?>

②関数htmlspecialchars()

ブラウザに HTML タグを直接解析させたくない場合は、HTML タグ内の特殊文字を HTML エンティティに変換する必要があります。たとえば、「<」を「>」に変換します。このように、ブラウザは HTML タグを解析せずに、ブラウザ内の HTML テキストをそのまま出力します。 PHP で提供される htmlspecialchars() 関数は、一部の事前定義された文字列を HTML エンティティに変換できます。この関数は、掲示板やゲスト メッセージ ボードなど、ユーザーが指定したテキストに HTML タグが含まれないようにするために使用されます。この関数で変換できる文字は次のとおりです:

★「&」(アンパサンド)は「&」に変換されます。

★「""(ダブルクォーテーションマーク)は「"」に変換されます。
★「'」(シングルクォーテーション)は「'」に変換されます。
★「<」(未満)は「<」に変換されます。
★「>」(より大きい)は「>」に変換されます。

この関数のプロトタイプは次のとおりです:


コードをコピーします コードは次のとおりです:
string htmlspecialchars(string string [,int quote_style[,string charset]])

この関数の最初のパラメータは、処理対象の HTML タグを含む文字列です。 2 番目のパラメーターは、引用符の変換方法を決定するために使用されます。デフォルト値は、二重引用符のみを変換し単一引用符を保持する ENT_COMPAT、両方の種類の引用符を変換する ENT_QUOTES、および引用符を変換しない ENT_NOQUOTES です。 3 番目のパラメータは、処理される文字列の文字セットを指定するために使用されます。デフォルトの文字セットは「ISO88511-1」です。

コードをコピーします コードは次のとおりです:



$str = "WebServer: & 'Linux' & 'Apache'" //文字列には HTML タグと一重引用符が含まれます
echo htmlspecialchars($str,ENT_COMPAT); //HTMLタグを変換し、二重引用符を変換します
echo "
n";
echo htmlspecialchars($str,ENT_QUOTES); //HTMLタグを変換し、2種類の引用符を変換します
echo "
n";
echo htmlspecialchars($str,ENT_NOQUOTES); //HTMLタグを変換し、引用符を外して変換します
echo "
n";
?>


ブラウザで出力

コードをコピーします コードは次のとおりです:

Webサーバー: & ‘Linux’ & ‘Apache’
Webサーバー: & ‘Linux’ & ‘Apache’
Webサーバー: & ‘Linux’ & ‘Apache’

ブラウザでソース コードを表示すると、次の結果が表示されます:
コードをコピーします コードは次のとおりです:



WebServer:&'Linux'&'Apache'
//一重引用符は変換されません
; Webサーバー:&'Linux'&'Apache'

WebServer:&'Linux'&'Apache' //一重引用符は変換されません


htmlentities() 関数も PHP で提供されており、すべての非 ASCII 文字を対応するエンティティ コードに変換できます。この関数の構文形式は htmlspecialchars() 関数と同じであり、より多くの HTML 文字をエスケープできます。次のコードは、htmlentities() 関数の使用例です。

コードをコピーします コードは次のとおりです:
$str = "「引用」は太字";
//出力&0qrave;»¸ö 'quote' ÊÇ <:b>太字
echo htmlentities($str);
//出力: '引用' は 太字
echo htmlentities($str,ENT_QUOTES,gb2312);
?>

フォームで送信されたデータを処理するときは、前に紹介した関数を使用して HTML マークアップ記号と一部の特殊文字を HTML エンティティに変換するだけでなく、引用符も処理する必要があります。送信されたフォームデータ内の「'」「"」「"」などの文字は、スラッシュ「"」とともに自動的に追加されるためです。これは、PHP 設定ファイル php.ini のオプション magic_quotes_gpc によるものです。デフォルトは、これを閉じないでください。バックスラッシュを削除するには、stripslashes() 関数を使用する必要があります。これを処理しないと、データベースがそれを制御記号と誤認し、エラーが発生する可能性があります。処理される関数は 1 つだけです。 string はパラメータとして使用され、処理された文字列が返されます。 通常、htmlspecialchars() 関数とtripslashes() 関数は、フォーム

で送信されたデータを共同で処理するために使用されます。

stripslashes() 関数はバックスラッシュ "" を削除するもので、連続するバックスラッシュが 2 つある場合は 1 つだけ削除されます。これに対応するのが別の関数 addslashes() です。関数名が示すように、「'」、「"」、「」、および NULL 文字の前に必要なバックスラッシュを追加します。

関数 htmlspecialchars() は、関数 HTML 内のタグ シンボルを対応する HTML エンティティに変換します。場合によっては、ユーザーが入力した HTML タグを直接削除することも必要になります。 PHP で提供されるstrip_tags() 関数は、デフォルトで文字列内のすべての HTML タグを削除できます。また、一部の HTML タグを選択して削除することもできます。掲示板やゲスト掲示板など、この分野でのアプリケーションはかなり必要です。たとえば、ユーザーがフォーラムに記事を公開する場合、フォント サイズ、色、太字、斜体などを変更できる一部の HTML タグを予約し、ページ レイアウトに影響を与える一部の HTML タグを削除できます。関数strip_tags()のプロトタイプは次のとおりです:


コードをコピーします コードは次のとおりです:
stringtrip_tags(string str[,stringallowable_tags]) //HTMLタグ関数を削除します


この関数には 2 つのパラメータがあり、最初のパラメータは処理する文字列を指定します。2 番目のパラメータは、リストに配置された HTML タグが保持され、その他はすべて削除されます。デフォルトでは、すべての HTML タグが削除されます。次のプログラムは、この関数のスコープを次のように使用します。


コードをコピーします コードは次のとおりです:

$str = "Linux Apache Mysql PHP";
echotrip_tags($str); //すべての HTML タグが削除され、出力: Linux Apache Mysql PHP
echotrip_tags($str,""); //出力LinuxApache Mysql PHP
echotrip_tags($str,""); //Linux Apache PHP< /b>
?>

4. その他の文字列フォーマット関数

書式設定する必要がある文字列を取得したい場合は、PHP で提供されるシステム関数を呼び出すことができます。独自の文字列書式設定関数を定義する必要はほとんどありません。

①関数strrev()

この関数の機能は、入力文字列を反転し、処理対象の文字列のみをパラメータとして提供し、反転した文字列を返すことです。以下に示すように:

コードをコピーします コードは次のとおりです:

echo strrev("http://www.lampbrother.net"); //反転後の出力: ten.rehtorbpmal.www//:ptth
?>

②関数number_format()

number_format() 関数は、数値を千のグループごとにフォーマットします。関数は次のようになります:

コードをコピーします コードは次のとおりです:

文字列数値形式(浮動小数点数[,int 10進数[,文字列10進点,文字列千秒数]])

コードをコピーします コードは次のとおりです:

$number = 123456789;
echo number_format($number); //出力: 123,456,789 千桁の区切り文字列
echonumber_format($number,2); //出力: 123,456,789.00 (小数点以下 2 桁)
echo number_format($number,2,",","."); //123.456.789 を出力、千の桁は (.) で区切られ、小数点以下 2 桁が保持されます
?>

③関数 md5()

インターネットの普及に伴い、ネットワーク管理者にとってハッカー攻撃が懸念事項となっています。統計によると、攻撃の 70% は内部から発生しているため、システム内の攻撃を抑制するには、対応する予防措置を講じる必要があります。内部関係者攻撃を防ぐことの重要性は、内部関係者がデータの保存場所と情報の重要性を十分に理解しているという事実にもあり、これにより内部関係者攻撃が効果的になる可能性が高くなります。攻撃者は正規ユーザーの ID 情報を盗み、偽の ID を使用して他のユーザーと通信します。したがって、ユーザーが登録するときは、データベースに追加される前にパスワードを暗号化する必要があります。これにより、内部の攻撃者がデータベース内の認証テーブルに直接クエリを実行して、正規のユーザーの ID 情報を盗むことを防ぐことができます。

md5() 関数の機能は、MD5 アルゴリズムで文字列を暗号化し、デフォルトで 32 ビットの 16 進文字列を返すことです。

コードをコピーします コードは次のとおりです:

$password = "ランプブラザー";
echo md5($password)."
";

//入力されたパスワードとデータベースに保存されているパスワードを照合します
if(md5($password) == '5f1ba7d4b4bf96fb8e7ae52fc6297aee'){
echo "パスワードは一致しており、ログインは成功しました";
}
?>

PHP では、ファイルの MD5 暗号化のために関数 md5_file() が提供されています。使用方法は md5() 関数と似ています。

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/914060.html技術記事 PHP で一般的に使用される文字列フォーマット関数の概要 PHP 関数の文字列フォーマットとは、文字列を特定のフォーマットに処理することです。通常、ユーザーがフォームからサーバーに送信したデータ...
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート