簡単な質問ですが、XML要求または応答が与えられることを考えると、これらの2行は常に同じ結果をもたらしますか?
str_replace( array( "\n", "\t", "\r", "\r\n" ), '', trim( $xml ) );
preg_replace( '#>\s+<#', '><', $xml );
いいえの場合、どうすればそのようなものを作ることができpreg_replace
ますか?
前もって感謝します。
簡単な質問ですが、XML要求または応答が与えられることを考えると、これらの2行は常に同じ結果をもたらしますか?
str_replace( array( "\n", "\t", "\r", "\r\n" ), '', trim( $xml ) );
preg_replace( '#>\s+<#', '><', $xml );
いいえの場合、どうすればそのようなものを作ることができpreg_replace
ますか?
前もって感謝します。
は(山括弧の外側の空白にのみ一致します)preg_replace
よりも制約があり、スペース文字が含まれています。さらに、のような文字列は置き換えられず、代わりに空白が保持されます。str_replace
\s
<blah> \r \n \t TEXT \t\t</blah>
実際、この2つは、どちらも何らかの形で空白に影響を与えることを除けば、まったく同じではありません。
あなたに相当preg_replace
するのstr_replace
は('/[\r\n\t]/','',$xml)
いいえ。たとえば、次のようなものがある場合:
<tag att="1"
att="2"
att="3">text</tag>
それらは異なる結果をもたらします。ただし、アドバイスがあれば、この目的で正規表現を使用しないでください。
それらは似ていません。理由は次のとおりです。
最初のバリアントが正常に機能する場合、私の意見では、正規表現よりも優れています。それ以外の場合、これは検索されたものである可能性があります。
preg_replace( '#>\s+<#m', '><', $xml );