2017-09-22 9 views
0

私はテキストを入力するための手段としてredactorを使用する基本的なブログアプリケーションを持っています。しかし、アップロードされた画像はHTMLタグとして 'body'フィールドに保存されます。たとえば:Yii2 Redactorウィジェット

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

は 'body' フィールドに保存されますものです。

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

試すウルド:それはHTMLに応じて、ミスマッチができるが

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

タグをつかむための別の方法は、いくつかの正規表現のようになります。

出力 string(22) "<img src="blah.jpg" />"

は、ここでは、コードhttps://3v4l.org/4NCNs

の意志
<?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]); 

ここに正規表現https://regex101.com/r/m1IYpx/1/

+0

私が必要としてくれたことをありがとう。どのように私は体から画像タグを抽出することができますか考えていますか? – Kyle

+1

これはおそらくこれを実行する最良の方法ではありません。 DOMDocumentにロードし、タグhttp://php.net/manual/en/domdocument.getelementsbytagname.phpで要素を取得することができます。もう1つの方法は正規表現のマッチを試みることです(推奨しません) – delboy1978uk

関連する問題