[risolto] Estrarre una stringa delimitata da tag con contenuto variabile

natamigoni

Nuovo Utente
7 Nov 2010
4
0
0
Ciao a tutti, ho il seguente problema:
Data una stringa di testo dovrei estrarre una porzione di questa stringa delimitata dai tag [flv] e [/flv], ovviamente il contenuto presente tra i tag di apertura e di chiusura è variabile.

Esempio:
"Prima parte del testo [flv]stringa da estrarre racchiusa tra i tag[/flv] fine del testo"

Quello che dovrei fare è estrarre questo contenuto, inserirlo in una nuova stringa e rimuoverlo dalla stringa originale.
Qualcuno mi sa aiutare?
Grazie a tutti.
Nat
 
ciao
prova in questo modo
PHP:
<?php
$testo="Prima parte del testo [flv]stringa da estrarre racchiusa tra i tag[/flv] fine del testo";
$ex_1=explode("[flv]",$testo);
/*
in $ex_1[0] trovi "Prima parte del testo "
in $ex_1[1] trovi "stringa da estrarre racchiusa tra i tag[/flv] fine del testo"
*/
$ex_2=explode("[/flv]",$ex_1[1]);
/*
in $ex_2[0] trovi "stringa da estrarre racchiusa tra i tag"
in $ex_2[1] trovi " stringa  fine del testo"
*/
//qui con $ex_2[0] fai quello che vuoi
echo $ex_1[0]."<br>";
echo $ex_1[1]."<br>";
echo $ex_2[0]."<br>";
echo $ex_2[1]."<br>";
?>
 
Ciao,
prima di tutto volevo dire che da questo forum, anche se mi sono appena iscritto, ho preso parecchio spunto per vari lavoretti...

volevo riprendere questo vecchio post per chiedere una cosa
PHP:
$testo="Prima parte del testo [flv]stringa da estrarre racchiusa tra i tag[/flv] fine del testo altrotesto tra tag [flv]stringa nuova da estrarre racchiusa tra i tag[/flv] fine del altro testo";

se io volessi estrarre i 2 messaggi (o molti altri sempre contenuti tra tag) da questa espressione come potrei fare ci vuole un ciclo ?

qualche spunto

Grazie
 
Ciao, benvenuto
io farei in questo modo
PHP:
<?php

$testo = "Prima parte del testo [flv]stringa da estrarre racchiusa tra i tag[/flv] fine del testo 
    altrotesto tra tag [flv]stringa nuova da estrarre racchiusa tra i tag[/flv] fine del altro testo
    ";

$ex = explode("[flv]", $testo);

foreach ($ex as $value) {
    $fine = strpos($value, "[/flv]");
    if ($fine !== false) {
        echo substr($value, 0, $fine) . "<br/>";
    }
}
?>
 
volendo lo si può fare anche con un espressione regolare:
PHP:
<?php
$t = "Prima parte del testo [flv]stringa da estrarre racchiusa tra i tag[/flv] fine del testo";
preg_match_all("(\[flv\](.*?)\[/flv\])", $t , $ris );
echo $ris[1][0]."<br/>";
echo $ris[1][1]."<br/>";
?>
 

Discussioni simili