Ich habe eine grundlegende Blog-Anwendung, die Redactor als Mittel zur Eingabe von Text verwendet. Wenn Bilder hochgeladen werden, werden sie jedoch als HTML-Tags im Feld "body" gespeichert. Zum Beispiel:Yii2 Redactor Widget
<p>Test blog post</p><p><img src="/uploads/11/4d3ca0098c-dsc9011.jpg"></p>
ist das, was in dem 'Körper' Feld gespeichert wird.
Dies ist, wie ich das Abrufen und die Anzeige der Daten:
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>';
}
Gibt es eine Weise, die ich dort eine 'if' Anweisung hinzufügen
if ($post->body contains <img> tag)
{ display <img> }
Danke genau was ich brauchte. Hast du eine Idee, wie ich dann das Bild-Tag aus dem Körper extrahieren könnte? – Kyle
Dies ist wahrscheinlich nicht der beste Weg, es dann zu tun. Sie könnten es in ein DOMDocument laden und dann Elemente per Tag http://php.net/manual/en/domodocument.getelementsbytagname.php erhalten. Der andere Weg versucht auch eine Regex-Übereinstimmung (nicht empfohlen) – delboy1978uk