2016-04-16 11 views
0

エンコードされたエンコードされていない単語をテキストから削除する正規表現を書く方法。例えばエンコードされたエンコードされていない単語を削除する正規表現を書く方法

以下とさせて頂きます:

$string1 = 'do not enter your username'; 
//The encoded string below is: 'or password'; 
$string2 = 'o&#114 password'; 
$string = $string1 . $string2; 

正規表現は、このような外観をエンコードした後にエンコードされていない単語「ユーザー名」およびエンコードされた言葉「パスワード」これを削除する必要があります。

o&#114 password 

私はエンコードされた単語ではうまく動作し、エンコードに失敗した次の正規表現を書いた。

$words_to_remove = 'username|or password'; 
preg_replace("/\b($words_to_remove)\b/u", ' ', $string); 

答えて

1

より正確に言えば、この'o&#114 password'数値HTMLエンコーディングであり、より複雑な方法でデコードする必要があります。
加えて、そのエンコードされた文字列&#111;&#114 <---にミスがあります:

$string1 = 'do not enter your username '; 
$string2 = '&#111;&#114; &#112;&#97;&#115;&#115;&#119;&#111;&#114;&#100;'; 
$string = html_entity_decode($string1 . $string2); 

$words_to_remove = 'username|password'; 
$string = preg_replace("/($words_to_remove)/u", ' ', $string); 

print_r($string); 
&#114;r文字、例えば「配列」の各々は、セミコロン ;
以下のようになるはず html_entity_decode関数を使用して、最終的な溶液で終わるべきであると同等です

出力:

do not enter your or 
+0

は答えてくれてありがとう、私はデコードせずに、文字列で動作します正規表現を探しています。 – Jimski

関連する問題