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
Codice PHP:
$stringa = "[img]pippo.jpg[/img]
Il mio programma fa così:
mette nell'array i pezzi di stringa contenuti fra gli spazi
Codice PHP:
$stringasplit=split(' ',$stringa);
toglie dall'array il primo valore cioè img
Codice PHP:
$tag=strtoupper(array_shift($stringasplit));
Cicla sui restanti componenti dell'array e se la if è verificata carica le propietà delle relative tag
Codice PHP:
$prop=array();
foreach($stringasplit as $v)
{
if(ereg('^([^=]*)=["\']?([^"\']*)["\']?$',$v,$arr))
{
$prop[strtoupper($arr[1])]=$arr[2];
}
}
Avendo lo split creato:
$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