Yii2 Redactor小部件

时间:2017-09-22 10:12:29

标签: php image yii2 thumbnails redactor

我有一个基本的博客应用程序,它使用redactor作为输入文本的方法。但是,上传图像时,它们会在“正文”字段中保存为HTML标记。例如:

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

是保存在“正文”字段中的内容。

这是我检索和显示数据的方式:

 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>'; 
}   

有没有办法可以在那里添加'if'语句来说明

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

1 个答案:

答案 0 :(得分:1)

strstr()搜索字符串http://php.net/manual/en/function.strstr.php

中的字符串

所以你可以试试:

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/