Je veux demander quelle pourrait être l'erreur que je fais dans ce code. J'essaye actuellement de trouver la première occurrence d'une étiquette d'image ou d'une étiquette d'objet puis de retourner un morceau de html s'il correspond à un. Actuellement, je peux obtenir l'étiquette de l'image, mais malheureusement, je ne peux pas avoir de résultats sur l'étiquette de l'objet.Php: Trouver le premier img ou tag d'objet dans la chaîne
Je pense, je fais une erreur dans mon modèle regex ou quelque chose. L'exigence d'espoir est assez claire pour que vous compreniez merci.
Mon code ici:
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;
}
Eh bien, je suis actuellement en train d'essayer de faire de la fonction aussi rechercher des balises d'objets ... – user143805
Ah ... Impossible de voir cela en raison des barres de défilement. Intéressant ... –
Vous ne définissez jamais ce que vous voulez récupérer. Vous devez placer '(' ') autour de ce que vous voulez dans le tableau de correspondance. –