2017-10-22 13 views
-1

イムを2つ置き換えようとしていますか?次のようにHTMLファイル内の文字列を返します。PHP str_replace特殊文字

<?php 
$file="test.html"; 

$q1 = "??"; 
$q2="?"; 

$string=file_get_contents($file); 

$string=substr_replace("$q1", "$q2",$string); 
file_put_contents($file, $string); 
?> 

ただし、IMはうまく動作しません。それは正常なテキストで正常に動作します。

前もって感謝します!

+1

あなたは何を意味するのですか? –

+0

その2つを置き換えていないのですか? simbols、それはちょうど1つに変更する必要がありますか? – user2965840

+0

['substr_replace()'](http://php.net/manual/en/function.substr-replace.php)**は** ['str_replace()']ではありません(http://php.net /manual/en/function.str-replace.php)。 'substr_replace()'を呼びますが、 'str_replace()'が期待する引数を渡します。もちろん、それは動作しません。 – axiac

答えて

0

str_replace()のパラメータセットを使用していますが、substr_replace()コールのパラメータセットを使用しています。

$string=str_replace($q1, $q2,$string); 

The manual substr_replace()

The manual str_replace()

を試してみて、私は右のあなたの後をテストしている間、あなたのファイルの トップ(S)error reportingを追加することをお勧めできますPHPタグを開く例、 <?php error_reporting(E_ALL); ini_set('display_errors', 1);何かが得られるかどうかを確認します。

+0

あなたの助けてくれてありがとうございますが、まだ動作していません。 <?php error_reporting(E_ALL); ini_set( 'display_errors'、1); $ file = "test.html"; $ q1 = "??"; $ q2 = "?"; $ string = file_get_contents($ file); $ string = str_replace($ q1、$ q2、$ string); file_put_contents($ file、$ string); ?> – user2965840

0

は最終的に私は解決策を見つけ、それがこのように動作します:それは働いていないことで

$q1 = "??"; 
$q2="?"; 

$cadena=utf8_encode(file_get_contents($nombrearchivo)); 
$cadena = html_entity_decode($cadena, ENT_QUOTES); 
$cadena=str_replace("$q1", "$q2",utf8_encode($cadena)); 
file_put_contents($nombrearchivo, $cadena); 
+0

質問に入力ファイルでUTF-8エンコードされたデータを使用していたとお伝えしたことがあります。 – RiggsFolly