[PHP] estrarre tag da un testo

  • Creatore Discussione Creatore Discussione T4MAR4
  • Data di inizio Data di inizio

T4MAR4

Nuovo Utente
3 Lug 2017
10
0
1
43
Salve vengo subito al dunque
io ho un testo
es:
(la community italiana dedicata a Webmaster, <p>Blogger, Sviluppatori, Sistemisti, Grafici ed operatori del mercato ICT. Condividiamo conoscenze e idee per un Italia</p> protagonista nel digitale.)
è possibile prelevare solo il contenuto dentro il tag <p>?
come posso procedere, grazie a tutti anticipatamente
 
ciao
prova così
PHP:
<?php
$stringa="(la community italiana dedicata a Webmaster, <p>Blogger, Sviluppatori, Sistemisti, Grafici ed operatori del mercato ICT. Condividiamo conoscenze e idee per un Italia</p> protagonista nel digitale.)";
preg_match_all("|<[p>]+>(.*)</[p>]+>|U",$stringa, $out, PREG_PATTERN_ORDER);
//echo $out[0][0] . " <br>" . $out[0][1] . " <br>";
//echo $out[1][0] . " <br>" . $out[1][1] . " <br>";
echo $out[1][0] . " <br>";
/*output
Blogger, Sviluppatori, Sistemisti, Grafici ed operatori del mercato ICT. Condividiamo conoscenze e idee per un Italia

*/
?>
poi ti basta usare un elemento solo dell'array $out, es. $out[1][0]

vedi
http://php.net/manual/en/function.preg-match-all.php
 
  • Like
Reactions: T4MAR4
PHP:
<?php
$stringa="(la community italiana dedicata a Webmaster, <p>Blogger, Sviluppatori, Sistemisti, Grafici ed ....</p> protagonista nel digitale.)";

$pos1 = strpos($stringa, '<p>');  
//identifico la prima occorrenza di apertura del tag p

$pos2 = strpos($stringa, "</p>", $pos1);
//identifico la prima occorrenza di chiusura del tag p

$testo = substr($stringa,$pos1+3,$pos2-$pos1-3);
//estraggo il contenuto escludendo i tag <p> e </p>
?>
 
  • Like
Reactions: T4MAR4
ciao
il preg_match ha il pregio che funziona anche con più tag p (o altri che vengono indicati nel patner)
PHP:
<?php
//modificata $stringa, patner uguale al precedente
$stringa="(la community italiana dedicata a Webmaster, <p>Blogger, Sviluppatori, Sistemisti, Grafici ed operatori del mercato ICT.</p> <p>Condividiamo conoscenze e idee per</p><p>un Italia</p> protagonista nel digitale.)";
preg_match_all("|<[p>]+>(.*)</[p>]+>|U",$stringa, $out, PREG_PATTERN_ORDER);
//echo $out[0][0] . " <br>" . $out[0][1] . " <br>";
//echo $out[1][0] . " <br>" . $out[1][1] . " <br>";
//echo $out[1][0] . " <br>";
echo "<pre>";
var_dump($out[1]);
echo "</pre>";
/*output
array(3) {
  [0]=>
  string(72) "Blogger, Sviluppatori, Sistemisti, Grafici ed operatori del mercato ICT."
  [1]=>
  string(34) "Condividiamo conoscenze e idee per"
  [2]=>
  string(9) "un Italia"
}
*/
?>
usando poi $out[1][nn] come uno preferisce
 
  • Like
Reactions: mr.x

Discussioni simili