2010-07-09 92 views
1

刪除標籤我有這個網站的字符串:PHP - 從字符串

<div> 
    <span> 1 </span> 
    <a href="#"> <span> 2 </span> </a> 
    <a href="#"> <span> 3 </span> </a> 
    <a href="#"> <span> 4 </span> </a> 
    .... 
</div> 

如何從鏈接(<a>)內取出<span>標籤?

回答

-2

它似乎是你試圖從當前頁面刪除鏈接。如果是這樣,你可能想看看這個教程。這可以通過3種方式完成。使用javascript,css或php和css。如果是這樣,你可能想看看他的tutorial

+0

指向教程的鏈接不是有用的答案。正確的答案是使用帶有$ allowable_tags參數的strip_tags,如下面的@Peter Gluck所述。 – axlotl 2018-02-12 15:56:16

1
$string = str_replace("<span>", "", $string); 
$string = str_replace("</span>", "", $string); 
4

如果你只是想刪除a標籤內span標記,且格式爲您發佈正是那麼下面符合這一規範。

$string = str_replace('<a href="#"> <span>', '<a href="#">', $string); 
$string = str_replace("</span> </a>", "</a>", $string); 

如果格式變化可言,你可能需要一個正則表達式或使用DomDocument解析HTML。

+0

你要一些報價單的問題。 StackOverflow不會讓我編輯你的答案......一個人怎麼做到這一點? – 2010-07-09 01:04:41

+0

@nute:我認爲你必須有2000的聲望才能編輯其他人的東西,除非這個東西是社區維基。 – icktoofay 2010-07-09 01:11:04

+0

@nute,謝謝。我只是複製和粘貼。必須愛語法高亮。 – 2010-07-09 01:18:58

10

你是否還想移除<span>標記的內容?如果是這樣,請試試這個:

$string = preg_replace("/<span[^>]+\>/i", "", $string); 

否則,nute發佈的str_replace方法將正常工作。

+0

沒有,只是標籤''和'',只有從內部鏈接永遠 – Alex 2010-07-09 01:05:37

+2

介意的人..我設法解決這個使用正則表達式: '的preg_replace('@ \ ] *)> \ ] *)>(。*?)\ <\/span> @i',' $ 3',$ string)' – Alex 2010-07-09 01:35:52

4

strip_tags() function是爲此而設計的,並允許您指定不應被剝奪的HTML標籤:

$stripped = strip_tags($string, '<div><a>'); 

指定'<div><a>'作爲第二個參數保留<div>和錨元素。

0

或者你可以使用這個:

$new_string = preg_replace('/(\<span\>|\<\/span\>)/', '', $string);