自分の画像アイコンを許可している間に、ユーザが挿入した画像タグを削除しようとしています。私は、これは私がstrpos関数のいずれかにエラーを取得しているように見えるが、なぜ把握することはできませんPHPでユーザが挿入した画像タグを削除する
Here is an image to check and my icon <img src="/images/ImageLink.jpg" />
を返したいと思い、この
$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';
}
}
を持っています。
更新:ありがとうございました。その答えははるかにエレガントです。私は最終的に
$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';
}
}
<
と
と私は、ユーザー入力のための真=のcontentEditableとのdivを使用していますので、使用>
でコードを動作させるためでした。これは単に、それぞれ<img
と>
と<
と>
を交換するだけでなく、
$strlength = $stringend - $stringstart +1;
に
$strlength = $stringend - $stringstart +4;
を変更することでテキストエリアのためにも使用することができ、あなたの時間をありがとうございました。
'strip_tags()'メソッドを調べるほうが良いかもしれません。 – MahanGM
strip_tagsは、jqueryで挿入された画像アイコンも削除します。 – buck54321
あなたの質問のタイトルではっきりしてください。私はRegExに慣れていません。簡単にアイコンタグを '[MyIcon]' next 'strip_tags'のような特定のマークに置き換えて、' [MyIcon] 'をアイコンタグに置き換えることができます。それは汚いが良いトリックだ。 – MahanGM