2013-02-20 4 views
0

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); 
+0

je dirais que la meilleure approche serait d'utiliser une expression régulière pour ce. –

+0

@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. –

Répondre

1

Vous avez obtenu l'ordre des paramètres mal pour stripos, il devrait être botte de foin, puis aiguille ...

if(stripos($value,$html_tag['before']) !== false && strripos($value,$html_tag['after']) !== false){ 
+0

Wow, très amateur de moi-même. Merci. –

+1

Je recommanderais: http://simplehtmldom.sourceforge.net/ si vous devez faire beaucoup de lecture/manipulation de HTML/XML en php. –

Questions connexes