2012-09-23 148 views
1

我抓取網頁獲得冠軍刪除&#58字符字符串從

$title = strip_tags($link1->plaintext); 

但結果是一樣Data Mining&#58 Concepts and Techniques

結果如何刪除&#58?謝謝

+0

看起來像一個破碎的HTML實體(缺少最後的分號)。 – bfavaretto

+0

僅供參考:':'=':' – cmbuckley

回答

2

的問題是,:是一個冒號character entity reference,但你的例子是不正確地終止(缺少結尾分號)。您可以修復無端接引用以下的(比較幼稚)的正則表達式:

$broken = "Data Mining&#58 Concepts and Techniques"; 
$fixed = preg_replace('/(&#x?[a-e0-9]+)\b/i', '$1;', $broken); 

然後可以使用html_entity_decode

echo html_entity_decode($fixed); // Data Mining: Concepts and Techniques 
+0

謝謝,我明白了:) – bruine

0

$title = str_replace("&#58", "", strip_tags($link1->plaintext));

+0

您可能想要更詳細地解釋您的答案;而不僅僅是發佈代碼*解釋*它做了什麼。 –

+0

@MartijnPieters這很明顯,不是嗎? –

+0

你會感到驚訝。另外,爲什麼不試圖修復這些破損的實體?像'&#\ d \ b'這樣的正則表達式會找到這些表達式,並允許您添加缺少的';',然後對實體進行解碼。 –