Я пытаюсь удалить любые введенные пользователем теги изображений, одновременно предоставляя свой собственный значок изображения. У меня есть этотУдаление пользовательских вставленных тегов изображений с помощью 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
strip_tags также удалит мои иконки изображений, которые вставляются с jquery. – buck54321
Так что будьте понятны в заголовке вопроса.Я не знаком с RegEx. В простой форме вы можете сначала заменить теги значков на определенную метку, как '[MyIcon]' next 'strip_tags', а затем заменить значок [MyIcon] на значок значка. Это грязный, но хороший трюк. – MahanGM