dividere immagini dal testo

Ciao a tutti,

ho un contenuto con un stringa con del testo e una galleria di immagini.

Vorrei scorporare testo e immagini:

Esempio:

$it['text'] = "bla bla bla bla bla bla {gallery 5}";

//visualizzo solo il testo:

$pattern = '/{gallery\s*(.*?)}/i';

$replacement = '';

echo preg_replace($pattern, $replacement, $it['text']); //visualizza solo il testo"bla bla bla bla bla bla" senza immagini

//visualizzo solo le immagini

???????????

Non riesco a far visualizzare solo {gallery 5}

avete qualche idea in merito????

grazie

inviato 8 anni fa
stellina
X 0 X

Ciao stellina,

potresti utilizzare la funzione strpos in questo modo:

$galleria = substr( $it['text'], (strpos($it['text'], "{") + 1), (strpos($it['text'], "}") - (strpos($it['text'], "{") + 1) ) );

questo codice stampa solo il valore contenuto tra parentesi graffe. Spero sia quello che ti serve!

 :bye:

Zeta

risposto 8 anni fa
zeta80
X 0 X

vorrei che stampasse solo: {gallery 5}

il codice l'ho testato ma stampa questo:

"bla bla bla bla bla bla gallery 5"

grazie

risposto 8 anni fa
stellina
X 0 X

Ciao,

ecco qui la versione con le parentesi:

$galleria = substr( $it['text'], strpos($it['text'], "{"), (strpos($it['text'], "}") - (strpos($it['text'], "{")-1) ));

Non mi torna quanto hai detto nell'ultima citazione:

vorrei che stampasse solo: {gallery 5}

il codice l'ho testato ma stampa questo:

"bla bla bla bla bla bla gallery 5"

grazie

io sono partito dalla tua stringa iniziale  O0

 :bye:

Zeta

risposto 8 anni fa
zeta80
X 0 X

Ciao,

modificando il codice da cui sei partita:

$pattern = '/(.*?){gallery\s*(.*?)}/i';
$replacement = '{gallery $2}';
echo preg_replace($pattern, $replacement, $it['text']);

ottieni la stringa {gallery 5}

Prima ho cercato la soluzione pił rapida ;) Spero sia quello che cercavi... fammi sapere!

 :bye:

Zeta

risposto 8 anni fa
zeta80
modificato 8 anni fa
X 0 X

non devi usare preg_replace ma preg_match

 :bye:

risposto 8 anni fa
Gianni Tomasicchio
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda