Pouvez-vous utiliser strpos()
à la recherche de balises HTML? Semble produire des résultats invalides. Également essayé de convertir à htmlentities()
- toujours pas de chance. Comment puis-je rechercher correctement des décorations de texte telles que: gras, italique et souligné?Comment rechercher des balises HTML dans des chaînes multilp avec PHP?
Exemple: (demo)
/* HTML Tags to search for. */
$html_tags = array(
'bold' => array(
'before' => '<strong>',
'after' => '</strong>'
),
'italics' => array(
'before' => '<em>',
'after' => '</em>'
),
'underline' => array(
'before' => '<span style="text-decoration: underline;">',
'after' => '</span>'
)
);
/* Sample Strings... */
$html_test = array(
'bold_with_html' => '<strong>Some string containing HTML tags.</strong>',
'italics_with_html' => '<em>Some string containing HTML tags.</em>',
'underline_with_html' => '<span style="text-decoration: underline;">Some string containing HTML tags.</span>',
'without_html' => 'Some string containing no HTML tags.'
);
/* Check for HTML Tags. */
$results = array();
foreach($html_test as $key => $value){
foreach($html_tags as $decoration => $html_tag){
if(stripos($html_tag['before'], $value) !== false && strripos($html_tag['after'], $value) !== false){
$results[$key][$decoration] = 'Located HTML: '.$decoration.'!';
} else{
$results[$key][$decoration] = 'No HTML located.';
}
}
}
print_r($results);
je dirais que la meilleure approche serait d'utiliser une expression régulière pour ce. –
@Hanlet Regex n'est pas le meilleur choix pour analyser du HTML, c'est un terrain miné de complexité et d'erreur. Il est préférable d'utiliser un simple analyseur html. –