Grazie Punkrazio, ho già letto questa pagina, infatti in linea di massima ho capito come funziona, il problema è nello specifico.
Per esempio se ho un tag così:
Notare lo spazio tra width e height
Il mio programma fa così:Codice PHP:$stringa = "[img]pippo.jpg[/img]
mette nell'array i pezzi di stringa contenuti fra gli spazi
toglie dall'array il primo valore cioè imgCodice PHP:$stringasplit=split(' ',$stringa);
Cicla sui restanti componenti dell'array e se la if è verificata carica le propietà delle relative tagCodice PHP:$tag=strtoupper(array_shift($stringasplit));
Avendo lo split creato:Codice PHP:$prop=array();
foreach($stringasplit as $v)
{
if(ereg('^([^=]*)=["\']?([^"\']*)["\']?$',$v,$arr))
{
$prop[strtoupper($arr[1])]=$arr[2];
}
}
$stringasplit[0] -> src='pippo.jpg'
$stringasplit[1] -> style='width:300px
$stringasplit[2] -> height:100px'
Le prime due righe dell'array vengono presi correttamente, quindi crea:
$prop['SRC']= 'pippo.jpg'
$prop['STYLE']= 'width:300px';
perchè penso abbiamo entrambi i simboli =' mentre l'ultima no perchè non esiste questa sequenza di caratteri.
L'idea sarebbe quella di mettere un or ereg('^height:'), in modo che prenda anche quelle righe che iniziano per height qualcosa. In questo modo la if sarebbe verificata.
Oppure meglio ancora togliere quel maledetto spazio.
Qualcuno mi chiederà perchè ho un espressione nello style con degli spazi, il problema nasce dal fatto che quando faccio il resize di un'immagine in una textarea, mi mette in automatico uno spazio tra width e height![]()

Rispondi quotando