Programing

PHP-

crosscheck 2021. 1. 9. 10:42
반응형

PHP- 문자열에서 태그 제거


야, 문자열에서 모든 이미지를 삭제해야하는데 올바른 방법을 찾을 수 없습니다.

다음은 내가 시도했지만 작동하지 않습니다.

preg_replace("/<img[^>]+\>/i", "(image) ", $content);
echo $content;

어떤 아이디어?


을 삭제 시도 \의 앞에 >.

편집 : 방금 정규식을 테스트했는데 제대로 작동합니다. 이것이 내가 사용한 것입니다.

<?
    $content = "this is something with an <img src=\"test.png\"/> in it.";
    $content = preg_replace("/<img[^>]+\>/i", "(image) ", $content); 
    echo $content;
?>

결과는 다음과 같습니다.

이것은 (이미지)가있는 것입니다.

당신은에 결과 다시 할당 할 필요가 $contentpreg_replace원래의 문자열을 수정하지 않습니다.

$content = preg_replace("/<img[^>]+\>/i", "(image) ", $content);

나는 strip_tags방법을 사용하는 것이 좋습니다 .


Sean 잘 작동합니다. 방금이 코드를 사용했습니다.

$content = preg_replace("/<img[^>]+\>/i", " ", $content); 
echo $content;

// 결과는 일반 텍스트뿐입니다. 효과가있다!!!


뉴스 기사의 처음 300 개 단어를 미리보기로 표시하고 싶었습니다. 안타깝게도 기사에 처음 300 개 단어 내에 이미지가 있으면 내 레이아웃이 정말 엉망인 미리보기 목록에 표시된다는 의미였습니다. 위의 코드를 사용하여 데이터베이스에서 가져온 문자열에서 모든 이미지를 숨 겼고 훌륭하게 작동합니다!

$news = $row_latest_news ['content'];
$news = preg_replace("/<img[^>]+\>/i", "", $news); 
if (strlen($news) > 300){
echo substr($news, 0, strpos($news,' ',300)).'...';
} 
else { 
echo $news; 
}

$this->load->helper('security');
$h=mysql_real_escape_string(strip_image_tags($comment));

사용자 입력

<img src = "#">

데이터베이스 테이블에 다음 문자를 삽입하십시오.

나를 위해 작동


codeigniter의 form_validation 클래스를 사용하기 만하면됩니다.

strip_image_tags($str).

$this->load->library('form_validation');
$this->form_validation->set_rules('nombre_campo', 'label', 'strip_image_tags');

참조 URL : https://stackoverflow.com/questions/1107194/php-remove-img-tag-from-string

반응형