2017-09-26 5 views
0

J'essaie de gratter le texte en clair entre 2 commentaires. J'ai vu quelques autres messages ici en utilisant le prochain frère ou l'enfant, mais ceux-ci semblent compter sur la recherche d'une autre balise HTML. Ces données sont simplement en texte brut. Est-il possible avec HTML Dom Parser?Obtenir des données entre les commentaires html dom parser

<p clear="both"> 
 
<b>Data at: 0620 UTC 26 Sep 2017</b></p> 
 
<!-- Data starts here --> 
 
KSNA 260553Z 00000KT 10SM SCT070 22/08 A2980 RMK AO2 SLP089 FU SCT070 LAST 
 
    T02170083 10261 20211 50006<br /><hr width="65%"/> 
 
<!-- Data ends here --> 
 
</p>

+0

Vous pouvez lire le HTML comme une longue chaîne de recherche alors la chaîne pour le début/fin balises JS commentaire et seulement obtenir la valeur de chaîne entre – Peter

Répondre

0

Keep it simple, l'homme. Ce sera plus rapide et plus simple de ne traiter que du texte. Vous pouvez découper le texte en trouvant les positions des deux commentaires en utilisant la fonction strpos.

+0

ah cela peut fonctionner! La chaîne '' a été trouvée dans la chaîne et existe à la position 2567La chaîne '


' a été trouvée dans la chaîne et existe à la position 2664 maintenant je vais juste obtenir quoi entre ces positions !! – jointtech

-1

Je pense avoir besoin de jquery; essayez cette

$('p').each(function(a,aa){ 
    if($(this).attr('clear')){ 
     var dt=$(this).text(); 
     alert(dt); 
     } 
     }); 
+0

C'est une question PHP. Non, vous n'avez pas besoin de jQuery. – JJJ

0

si php alors si facile

$sample_data="<!-- Data starts here -->asdasdasdasd<!-- Data starts here -->"; 
$ayrac="<!-- Data starts here -->" //or '--' whatever 
$array_for_dta=explode($ayrac,$sample_data); 
foreach($array_for_dta as $val){ 
    if(empty($val)){continue;} 
    $data_val=$data_val.$val; 
} 
echo $data_val;//asdasdasdasd 
-1

Vous pouvez utiliser jQuery pour cela comme:

<script> 
    jQuery(document).ready(function(){ 
     var text = jQuery("p").html(); 
     alert(text); 
     jQuery(".test").html(text); 
    }); 
</script> 
0

vraiment laid, mais cela fonctionne pour moi. Merci à Gedrox pour la poussée dans la bonne direction.

Va tester la réponse de Hakan Kuru qui a l'air de marcher aussi.

<?php 
 
$url = 'http://www.aviationweather.gov/metar/data?ids=ksna&format=raw&hours=0&taf=off&layout=off&date=0'; 
 
$content = file_get_contents($url); 
 
$start = '<!-- Data starts here -->'; 
 
$end = '<br /><hr width="65%"/>'; 
 
$pos = strpos($content, $start); 
 
if ($pos === false) { 
 
    echo "The string '$start' was not found in the string "; 
 
} else { 
 
    echo "The string '$start' was found in the string "; 
 
    echo " and exists at position $pos"; 
 
} 
 
$pos2 = strpos($content, $end); 
 
if ($pos2 === false) { 
 
    echo "The string '$end' was not found in the string "; 
 
} else { 
 
    echo "The string '$end' was found in the string "; 
 
    echo " and exists at position $pos2"; 
 
} 
 
$count1 = $pos2-$pos; 
 
echo "count: "; 
 
echo $count1; 
 
$posnew = $pos + 25; 
 
$count1new = $count1 - 25; 
 
$metartext = substr($content, $posnew, $count1new); 
 
echo $metartext; 
 
?>