我試圖刪除任何用戶插入的圖像標籤,同時允許我自己的圖像圖標。我有這個使用PHP刪除用戶插入的圖像標籤
$post = 'Here is an image <img src="imgage.jpg" /> to check
and my icon <img src="/images/ImageLink.jpg" />';
$imgcheck = true;
$stringstart = 0;
while($imgcheck == 'true'){
if($stringstart = strpos($post,'<img',$stringstart)){
if ($stringend = strpos($post,'>',$stringstart)){
$strlength = $stringend - $stringstart;
$substring = substr($post,$stringstart,$strlength);
if (!preg_match('/src="\/images\/ImageLink.jpg"/',$substring)){
$post = str_replace($substring, "", $post);
}
else{
$stringstart = $stringend;
}
}
else{
$imgcheck = 'false';
}
}
else{
$imgcheck = 'false';
}
}
我想這回
Here is an image to check and my icon <img src="/images/ImageLink.jpg" />
我似乎就對strpos功能之一將得到一個錯誤,但無法找出原因。
更新:謝謝你hakre。這個答案更加優雅。我也終於使與
$imgcheck = true;
$stringstart = 0;
while($imgcheck == 'true'){
if($stringstart = strpos($post,'<img',$stringstart)){
if ($stringend = strpos($post,'>',$stringstart)){
$strlength = $stringend - $stringstart +4;
$substring = substr($post,$stringstart,$strlength);
if (!preg_match('~src="\/images\/ImageLink.jpg"~',$substring)){
$post = str_replace($substring, "", $post);
}
else{
$stringstart = $stringend;
}
}
else{
$imgcheck = 'false';
}
}
else{
$imgcheck = 'false';
}
}
與<
因爲我使用一個div CONTENTEDITABLE =真正的用戶輸入使用>
代碼工作。這也可以通過簡單地用<img
和>
更換<
和>
分別以及改變
$strlength = $stringend - $stringstart +4;
到
$strlength = $stringend - $stringstart +1;
謝謝你的時間被用於文本區域。
也許最好環視'strip_tags()'方法。 – MahanGM 2012-01-05 17:50:41
strip_tags也會刪除我用jquery插入的圖像圖標。 – buck54321 2012-01-05 17:52:37
所以在你的問題標題中要清楚。我不熟悉RegEx,通過一種簡單的方法,您可以先用'[MyIcon]'下一個'strip_tags'來替換您的圖標標籤,然後用您的圖標標籤替換[MyIcon]。這很骯髒,但是一個很好的竅門 – MahanGM 2012-01-05 17:57:11