問題出現在標題中。我試圖用strip_tags,但顯示了空白,我試着使用了preg_replace,但我不太明白明顯的語法..如何將此行「XX <i> r</i><i> n</i>」過濾爲XX?
試過這種
$test = "Home<i>\r</i><i>\n</i>";
$patterns = array();
$patterns[0] = '<i>';
$test = preg_replace($patterns, '', $test);
但回聲$測試還是一樣的!
問題出現在標題中。我試圖用strip_tags,但顯示了空白,我試着使用了preg_replace,但我不太明白明顯的語法..如何將此行「XX <i> r</i><i> n</i>」過濾爲XX?
試過這種
$test = "Home<i>\r</i><i>\n</i>";
$patterns = array();
$patterns[0] = '<i>';
$test = preg_replace($patterns, '', $test);
但回聲$測試還是一樣的!
,怎麼是這樣的:
$test = "Home<i>\r</i><i>\n</i>";
preg_match('/^[^<]+/', $test, $match);
echo $match[0];
如果要刪除所有標籤,用strip_tags應該這樣做,或者你可以使用的preg_replace,如:
$test = "Home<i>\r</i><i>\n</i>";
$test = preg_replace('/<[^>]+?>/', '', $test);
echo $test;
我自己喜歡preg_match,尤其是如果你知道XX在原始問題中的含義。 – Tim 2010-07-14 04:11:51
strip_tags
會返回XX \ r \ n,因此preg_replace
可能會是您正在尋找的,假設它可以實際執行您想要的操作。我不知道自己是否會像想要的那樣去掉標籤,但如果您只是不理解語法,請閱讀here。
希望這會有所幫助。如果你只想得到字符串的第一部分到第一標籤
問題上的preg_replace你的語法()是你沒有定義圖案作爲準確的正則表達式。如果您使用str_replace(),但您的方法適用於preg_replace(),則識別<i>
的正確模式爲'/<i>/'
。基本上,你需要把它放在/
字符中以將其定義爲正則表達式。
如果您要刪除所有標記,Jonathan的表達式比模式實現要好得多。如果沒有,你可以處理這樣的具體標籤:
$test = "Home<i>\r</i><i>\n</i>";
$patterns = array();
$patterns[0] = '/<\/?i>/'; //removes <i> and </i>
$patterns[1] = '/\r|\n/'; //removes \r and \n
$test = preg_replace($patterns, '', $test);
模式不正確。第一個[0]應該是''/ <\/?i> /'',第二個[1]應該是''/ \ r | \ n /''。它可能只是在第二個刪除斜線或東西。但是它顯示你逃避方括號的方式,而且你可能正在考慮一個組的括號,而不是用大括號來說出任何這些(r | n)字符。此外,如果你正在做的唯一事情是多個事情的或,你甚至不需要分組。如果你將這個組與其他的東西比如一個''/ <\ /?(b | i | u | small | strong | etc)> /'',分組真的只會有用。 – 2010-07-14 05:28:07
你是對的。我想我昨晚在做出瀏覽問題和睡覺之間的決定時做出了錯誤的選擇。相應地調整模式。 – 2010-07-14 12:18:04
它總是第2個字符?那麼沒有斜體標籤而不是新行? – 2010-07-14 00:27:09
不是前2個字,不同的單詞。 – ganjan 2010-07-14 00:36:53