2012-03-11 166 views
0

我正在讀取遠程文件中的一些數據,讓每件事情都工作到我寫一些特定行到文本文件時。這裏
問題是,當我喜歡寫東西女孩的金色金屬「X」 CZ環成爲女孩&氏金色金屬&'×&者; CZ環在txt文件中。
我如何寫入txt文件,以便它保留上面寫的文本,而不是顯示字符代碼,但實際字符。
我的代碼示例。寫入特殊字符到txt文件

$content_to_write = '<li class="category-top"><span class="top-span"><a class="category-top" href="'.$linktext.'.html">'.$productName.'</a></span></li>'."\r\n"; 
       fwrite($fp, $content_to_write); 
$linktext = "Girls-Goldtone-X-CZ-Ring"; 
$productName = "Girl's Goldtone 'X' CZ Ring"; 

的var_dump

string '<li class="category-top"><span class="top-span"><a class="category-top" href="Stellar-Steed-Gallery-wrapped-Canvas-Art.html">&apos;Stellar Steed&apos; Gallery-wrapped Canvas Art</a></span></li> 

'(長度= 195)

代碼

   $productName =$linktext; 


       $linktext = str_replace(" ", "-", $linktext); 
       $delChar = substr($linktext, -1); 
       if($delChar == '.') 
       { 
        $linktext = substr($linktext, 0, -1); 
       } 

       $linktext = removeRepeated($linktext); 
       $linktext = remove_invalid_char($linktext); 
       $productName = html_entity_decode($productName); 
       $content_to_write = '<li class="category-top"><span class="top-span"><a class="category-top" href="'.$linktext.'.html">'.$productName.'</a></span></li>'."\r\n"; 
       var_dump($content_to_write); 
       fwrite($fp, utf8_encode($content_to_write)); 
+0

這只是一個編碼問題。在外部文件中使用哪種編碼,在查看輸出時使用哪種編碼,以及在寫入.txt文件時使用哪種編碼? – 2012-03-11 10:23:55

回答

1

它是你是從一個遠程文件中讀取的數據,並然後寫入一個txt文件樂?同意上面的評論,它是一個編碼問題。請嘗試以下代碼:

$file = file_get_contents("messages.txt"); 
$file = mb_convert_encoding($file, 'HTML-ENTITIES', "UTF-8"); 
echo $file; 

將您對瀏覽器的響應回顯並查看。如果找到合適的,請將回複寫入您的txt文件。確保你的txt文件是UTF8編碼的。

看看這個:Write Special characters in a file

+0

謝謝,但我沒有解決問題。我正在從URL讀取一個txt文件,然後通過** fgets **讀取一個隨機行。這行在瀏覽器中顯示正確,但是當我通過** fwrite將此行寫入txt時,它會混淆所有特殊字符。 – 2012-03-11 12:06:17

1

fwrite是二進制安全的,這意味着它不會做任何編碼的東西,但只是寫任何你直接喂到它的文件。它看起來像你寫的$productName變量在寫之前已經是實體編碼的。先嚐試在變量上運行html_entity_decode

注意html_entity_decode不觸及單引號(&apos;)默認情況下;您必須在第二個參數中設置ENT_QUOTES標誌。您可能還想在第三個參數中明確指定編碼。

+0

對不起,我更正了$ productName。但我的變量從數組中獲取值。我從遠程文件中讀取一個隨機行。瀏覽器上的每一件事情都很好,但是在txt中問題仍然存在。 – 2012-03-11 12:26:36

+0

您是否嘗試過'html_entity_decode'?它應該工作。 – 2012-03-11 12:28:58

+0

是的,我一直在嘗試約2天。但似乎沒有任何工作。有沒有平臺問題或一些事情,我在勝利7 64bit,WAMP。它是否必須對此做任何事情? – 2012-03-11 12:42:18

相關問題