2017-09-22 7 views
0

텍스트를 입력하는 수단으로 redactor를 사용하는 기본 블로그 응용 프로그램이 있습니다. 그러나 이미지가 업로드되면 '본문'입력란에 HTML 태그로 저장됩니다. 예를 들어 :Yii2 Redactor 위젯

<p>Test blog post</p><p><img src="/uploads/11/4d3ca0098c-dsc9011.jpg"></p>

은 '몸'필드에 저장됩니다 것입니다.

if ($post->body contains <img> tag) { display <img> }

답변

1

strstr() 말을 내가 거기에 '만약'문을 추가 할 수있는 방법이 있나요

foreach($dataProvider->getModels() as $post){ 
    echo Html::a('<div class="well well-sm" id="inner"><h3>'.$post->subject.'</h3>', '/post/view?id=' .$post->id); 
    echo 'Posted By: ' .$post->user->username . ' <br/><i class = "glyphicon glyphicon-time"></i> '.Yii::$app->formatter->asDatetime($post->updated_at) . '<br/>Views: ' .$post->view_count .'</div>'; 
} 

:

내가 검색하고 데이터를 표시하고 어떻게 문자열 내의 문자열을 검색합니다. http://php.net/manual/en/function.strstr.php

그래서 당신은 c입니다. 시도 울드 :

if (strstr($post->body, '<img ')) { 

또 다른 방법을 몇 가지 정규식이 될 수있는 태그를 잡아, 그것은 HTML에 따라 불일치 수 있지만 :

<?php 

$html = '<html> 
<head> 
<etc /> 
</head> 
<body> 
<div><img src="blah.jpg" /></div><br /> 
</body> 
</html>'; 

$regex = '#<img .*?\/>#'; 

preg_match($regex, $html, $matches); 

var_dump($matches[0]); 

어떤 출력합니다 string(22) "<img src="blah.jpg" />"

여기에 코드 https://3v4l.org/4NCNs

입니다

여기에 정규 표현식 https://regex101.com/r/m1IYpx/1/

+0

정확히 내가 필요한 것을 고마워. 시체에서 이미지 태그를 추출하는 방법에 대해 알고 있습니까? – Kyle

+1

아마도이 방법을 사용하는 것이 최선의 방법은 아닙니다. DOMDocument에로드 한 다음 http://php.net/manual/en/domdocument.getelementsbytagname.php 태그로 요소를 가져올 수 있습니다. 다른 방법은 정규식 일치를 시도하는 것입니다 (권장하지 않음). – delboy1978uk