- Home
- Categorie
- Coding e Sistemistica
- PHP
- [PREG_REPLACE] CHIEDO AIUTO ai GURU della sintassi
-
[PREG_REPLACE] CHIEDO AIUTO ai GURU della sintassi
Salve a voi,
sto impazzendo per un errore di sintassi che sono sicuro sia di una enorme stupidità, però non riesco a trovare la soluzione.voglio richiamare una funzione utilizzando una variabile ottenuta tramite preg_replace
$testo= preg_replace( "/[IMMAGINE GRANDE ID=(.*)]/", $GLOBALS[upload]->getImageAddress('IMG_TAG',$1,'_ico.jpg'),$testo);
se la scrivo così mi da errore, se metto $1 tra virgolette funziona ma non mi passa il valore,
qualche idea?
-
Ciao Zumbo,
è un classico sbatterci la testa...prova con:
$GLOBALS[upload]->getImageAddress("IMG_TAG$1_ico.jpg")
dovrebbe funzionare... ma se ti da errore postalo, così arriviamo prima a meta!
-
@ceccus said:
Ciao Zumbo,
...prova con:
$GLOBALS[upload]->getImageAddress("IMG_TAG$1_ico.jpg")...Ciao, e scusa per il ritardo.
N.B. è cambiata la funzione da richiamare ma:
scrivendo così
$testo=preg_replace("/[IMMAGINE GRANDE ID=(.*)]/",
printImage("$1FULL"),$testo);mi dà il missing argument 2
comunque ho trovato la soluzione:
innanzitutto ho scoperto (non lo sapevo) che aggiungendo una "e" si sottindente eval
quindi il primo parametro della funzione preg_replace diventa
/[IMMAGINE GRANDE ID=(.*)]/e ```inoltre ho notato che non gli piace che chiami un T_OBJECT,quindi ho dovuto ricreare la funzione subito prima del codice, senza includerla in una classe ed ho eseguito il preg_replace in questo modo:
$testo=preg_replace("/[IMMAGINE GRANDE ID=(.*)]/e",
"printImage($1,'FULL')",$testo);per evitare di scrivere $GLOBALS[nome_classe]->printImage(...