PHP で文字列を分割するには、explode() 関数を使用します。通常、開発プロジェクトでは、ユーザーがフォームまたはその他の方法で送信した文字列のさまざまな部分を表示して、簡単に分類して保存し、使用することができます。たとえば、文内の単語を調べたり、URL や電子メール アドレスを構成要素に分割したりします。このとき、explode()関数を使用することができます。この記事では、phpのexplode()関数の使い方を紹介します
PHP開発マニュアルでは、その関数のプロトタイプは次のようになります:
array explode(string separator,string input [, int limit]);
この関数は戻り値を返します。文字列で構成される配列。各要素は文字列の部分文字列であり、境界点として文字列区切り文字で区切られます。 limit パラメーターが設定されている場合、返される配列には制限要素までが含まれ、最後の要素には文字列の残りの部分が含まれます。
区切り文字が空の文字列 ("") の場合、explode() は FALSE を返します。区切り文字に文字列内に見つからない値が含まれている場合、explode() は文字列の 1 つの要素を含む配列を返します。 limit 引数が負の場合、最後の -limit 要素を除くすべての要素が返されます。この機能は PHP 5.1.0 の新機能です。 歴史的な理由により、implode() は両方の引数の順序を受け入れることができますが、explode() は受け入れることができません。区切り文字パラメータが文字列パラメータの前にあることを確認する必要があります。
PHP プロジェクトで顧客の電子メール アドレスを通じてドメイン名を取得するには、以下に示すように PHP スクリプトを使用できます:
$email_array = explode('@', $email);
コードの説明: ここで、explode() 関数を呼び出すことにより、顧客の電子メール アドレスが 2 つに分割されます。部分: ユーザー名は配列の最初の要素 $email_array[0] に格納され、電子メール ドメイン名は 2 番目の配列要素 $email_array[1] に格納されます。これで、ドメイン名をテストしてユーザーのソースを特定し、指定した場所に保存できます:
if ($email_array[1]== "qq.com"){ $toaddress= "boss@qq.com"; } else{ $toaddress= "feedback@example.com"; }
ドメイン名が大文字または大文字と小文字が混在している場合、この機能は正しく動作しないことに注意してください。この問題は、次のようにドメイン名を変換 (すべて大文字または小文字に変換) し、正常に一致するかどうかを確認することで回避できます。
if (strtolower($email_array[1])== "qq.com"){ $toaddress= "boss@qq.com"; } else{ $toaddress= feedback@example.com; }
文字列を分割する例を見てみましょう。 コードは次のとおりです。
<?php header("content-type:text/html;charset=utf-8"); $this_year = 2017; $text = <<< EOT 小李,F,1994,合肥,PHP程序员 小刘,M,1993,安庆,php工程师 小王,F,1991,六安,项目经理 EOT; $lines = explode("\n", $text); //将多行数据分开 foreach ($lines as $userinfo) { $info = explode(",", $userinfo, 3); //仅分割前三个数据 $name = $info[0]; $sex = ($info[1] == "F")? "女" : "男"; $age = $this_year - $info[2]; echo "姓名: $name $sex . 年龄:$age <br/>"; } ?>
コード実行結果:
【おすすめ関連記事】
以上がPHPのexplode()関数の使い方の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。