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";
?>