2016-05-24 4 views
0

大きなHTML文書の中の特定のnoscriptタグをpreg_replaceを使って置き換えようとしていますが、私が使用している正規表現は次のとおりです。PHP preg_replace関数が原因でnet :: ERROR_CONNECTION_RESET

$regex = '/<noscript><iframe(.?)+width="'.$width.'"(.?)+height="'.$height.'"(.?)+<\/iframe><\/noscript>/m'; 
$html = preg_replace($regex, $customTag, $html); 

これは常にサーバーへの接続をリセットします。私は間違って何をしていますか?

+0

PHPログをチェックすると、なぜ 'preg_replace()'があなたの接続をリセットするのか分かりません。また、あなたのファイルが巨大な場合は、php_iniの値として 'max_execution_time'と' memory_limit'もチェックしてください。 – Charleshaa

+0

はすでに実行していますが、最大実行時間は120秒、メモリ制限は520Mです。動作しませんでした。 – Anfal

+0

'(。?)+'の代わりに '(。+?)'を使用してみてください –

答えて

0

あなたは

  • (.+?)はungreedy的に(改行を除く)任意の文字と一致します(.?)+(.+?)に変更する必要があります。
関連する問題