Ich möchte fragen, was könnte der Fehler sein, den ich in diesem Code mache. Ich versuche gerade das erste Vorkommen eines Bild-Tags oder eines Objekt-Tags zu finden und gebe dann ein Stück html zurück, wenn es einem entspricht. Derzeit kann ich das Bild-Tag bekommen, aber leider kann ich keine Ergebnisse auf Objekt-Tags haben.Php: Finden Sie zuerst img oder Objekt-Tag in String
Ich dachte, ich mache einen Fehler in meinem Regex-Muster oder so. Hoffnung Anforderung ist klar genug für Sie zu verstehen, danke.
Mein Code hier:
function get_first_image(){
global $post, $posts;
$first_img = '';
ob_start();
ob_end_clean();
$output = preg_match_all('/<img.+src=[\'"]([^\'"]+)[\'"].*>/i', $post->post_content, $matches) || preg_match_all('/<object[0-9 a-z_?*=\":\-\/\.#\,<>\\n\\r\\t]+<\/object>/smi', $post->post_content, $matches);
$first_img = $matches [1] [0];
if(empty($first_img)){ //Defines a default image
$mediaSearch = preg_match_all('/<object[0-9 a-z_?*=\":\-\/\.#\,<>\\n\\r\\t]+<\/object>/smi', $post->post_content, $matches2);
$first_media = $matches2 [1] [0];
$first_img = "/images/default.jpg";
}
if(!empty($first_img)){
$result = "<div class=\"alignleft\"><img src=\"$first_img\" style=\"max-width: 200px;\" /></div>";
}
if(!empty($first_media)){
$result = "<p>" . $first_media . "</p>";
}
return $result;
}
Nun, ich versuche gerade, die Funktion auch für Objekte Tags suchen ... – user143805
Ah ... Konnte nicht wegen der Bildlaufleisten sehen. Interessant ... –
Sie definieren nie, was Sie zurückbekommen möchten. Sie müssen '(' ') um das, was Sie wollen, in das Match-Array einfügen. –