2015-08-24 30 views
2

我有一個字符串s如下:PHP的字符串替換沒有得到

«math xmlns=¨http://www.w3.org/1998/Math/MathML¨»«msup»«mi»x«/mi»«mn»2«/mn»«/msup»«/math» 

我想將其轉換爲:

<math><msup><mi>x</mi><mn>2</mn></msup></math>

我試過如下:

$text = str_replace("«math xmlns=¨http://www.w3.org/1998/Math/MathML¨»","<math>", $text); 
$text = str_replace("«/math»","</math>", $text); 
$text = str_replace("»Â",">", $text); 
$text = str_replace("«","<", $text); 

echo $text; 

但對於我運氣不好,我得到的輸出字符串爲:

«math xmlns=¨http://www.w3.org/1998/Math/MathML¨»«msup»«mi»x«/mi»«mn»2«/mn»«/msup»«/math» 

我該怎麼做?

+0

使用'的preg_replace()' – aldrin27

+0

@ aldrin27你可以發佈答案嗎?那麼它會非常有幫助!我想,沒有工作 – user1989

回答

0

有隻是一對夫婦str_replace的做...

$text = "«math xmlns=¨http://www.w3.org/1998/Math/MathML¨»«msup»«mi»x«/mi»«mn»2«/mn»«/msup»«/math»"; 

$text = str_replace("«math xmlns=¨http://www.w3.org/1998/Math/MathML¨»","<math>", $text); 
$text = str_replace("«/math»","</math>", $text); 
$text = str_replace("»Â",">", $text); 
$text = str_replace("»",">", $text); 
$text = str_replace("«","<", $text); 
$text = str_replace("«","<", $text); 
$text = str_replace("Â","", $text); 

echo $text; // outputs <math><msup><mi>x</mi><mn>2</mn></msup></math> 
+0

我輸出作爲

<數學的xmlns = HTTP://www.w3.org/1998/Math/MathML¨>​​ X

user1989

+0

你是什麼意思?如果你運行數學xmlns =http://www.w3.org/1998/Math/MathML¨msup«mi»x«/mi»mn»2«/mn »Â«/msup»«/廟»'通過上面的PHP,你會得到' X'。 – Tim

+0

我正在寫入一個文件。 $ text = str_replace(「math xmlns = http://www.w3.org/1998/Math/MathML¨」,「」,$ text); $ text = str_replace(「«/math»」,「」,$ text); $ text = str_replace(「»,」>「,$ text); $ text = str_replace(「»」,「>」,$ text); $ text = str_replace(「 - 」,「<」,$ text); $ text = str_replace(「«」,「<」,$ text); $ text = str_replace(「Â」,「」,$ text); echo $ text; $ myfile = fopen(「newfile.txt」,「w」)或死(「無法打開文件!」); fwrite($ myfile,$ text); fclose($ myfile); – user1989

0

您可以使用utf8_decode去除一個符號,取代使用str_replace函數所有不必要的值。

PHP代碼

<?php 
    $text = utf8_decode("«math xmlns=¨http://www.w3.org/1998/Math/MathML¨»«msup»«mi»x«/mi»«mn»2«/mn»«/msup»«/math»");  
    $text = str_replace("«","<",$text); 
    $text = str_replace("»",">",$text); 
    $text = str_replace("xmlns=¨http://www.w3.org/1998/Math/MathML¨","",$text); 
    echo htmlspecialchars($text); 
?> 

鏈接:: Demo with source code in phpfiddle

結果::

enter image description here

+0

@NeethuRaj。我已更新我的解決方案。你可以運行它所做的PHP腳本,正是你想要的。 –

+0

@NeethuRaj很高興我能幫到你。 –

+0

好友我的輸出是«math xmlns =»http://www.w3.org/1998/Math/MathML¨«msup»«mi»x«/ mi»«mn»2«/ mn»«/ MSUP»«/數學»。哪個是錯誤的! – user1989