ホームページ > バックエンド開発 > PHPチュートリアル > php rtrim()関数使用時の一部異常現象

php rtrim()関数使用時の一部異常現象

怪我咯
リリース: 2023-03-12 15:28:02
オリジナル
1840 人が閲覧しました

この記事では主にPHP関数rtrim()の使用における奇妙な現象を紹介し、具体的な例に基づいてPHP関数rtrimの文字マッチング処理で発生する問題と解決策を分析し、理解を深めます。 rtrim 必要な友人は、関数の原理と使用スキルを参照してください

この記事では、PHP 関数 rtrim() の使用における奇妙な現象について説明します。参考のために皆さんと共有してください。詳細は次のとおりです:

今日 rtrim() 関数を使用するときに奇妙な問題が発生しました: rtrim()函数时遇到了一个奇怪的问题:

echo rtrim(&#39;<p></p>&#39;, &#39;</p>&#39;); // 输出为 <p
echo ltrim(&#39;www.php.cn&#39;,&#39;www.&#39;); // 输出为 php.cn
ログイン後にコピー

以上的输出结果有点出人意料,本来我想第一行应该输出

,第二行会输出jb51.net。

这个问题纠结了我好久,一直没有找到原因,后来在手册中找到了答案:

rtrim()是以字符为单位替换,而不是以字符串的。从右往左替换时

6个字符肯定会被替换掉的,再往左时遇到了>,因为>也包含在rtirm()的第二个参数的字符串(

)中,所以也被替换掉了,当再往左时遇到了p,这时p不包含在第二个参数的字符串中。所以替换停止,输出了

如果这样理解的话,第二行的输出结果就是在意料之中了。呵呵……手册中已经写的清清楚楚了。原文:

You can also specify the characters you want to strip, by means of the charlist parameter. Simply list all characters that you want to be stripped. With .. you can specify a range of characters。

由此可见,rtrimltrimtrim第二个参数是作为一组字符列表进行匹配操作的。这与我们以往认识的<a href="http://www.php.cn/wiki/1372.html" target="_blank">str_replace</a>rrreee

上記の出力結果は、当初は少し予想外でした。 , 1行目はOutput

、2行目はjb51.netを出力すると思いました。 🎜🎜この問題は長い間私を悩ませてきましたが、その理由は見つかりませんでした。その後、マニュアルで答えを見つけました: 🎜🎜rtrim() は文字を単位で置き換えます。 文字列 🎜 ではありません。右から左に置換すると、rtirm() の 2 番目のパラメータの文字列にも > が含まれるため、

の 6 文字が必ず置換されます。 < /p>) なので、左に進むときに p が見つかった場合も、p は 2 番目のパラメーターの文字列に含まれません。したがって、置換は停止し、

🎜🎜このように理解すると、2行目の出力結果が期待できます。ははは…説明書にちゃんと書いてありますよ。元のテキスト: 🎜🎜charlist パラメータを使用して、削除する文字を指定することもできます。 .. を使用すると、削除する文字をすべてリストできます。文字の範囲🎜を指定します。 🎜🎜 rtrimltrimtrim の 2 番目のパラメータが、次の文字リストのセットとして使用されていることがわかります。マッチング操作。これは、これまで知られている <a href="http://www.php.cn/wiki/1372.html" target="_blank">str_replace🎜</a> 関数の置換操作とは異なります。過去に。 🎜

以上がphp rtrim()関数使用時の一部異常現象の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート