Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    617

    Tirare fuori da una stringa il nome del file immagine.

    Sono ore che sbatto la testa e non trovo nulla che mi aiuti.

    In un form faccio caricare all'interno della textarea il percorso di una o più immagini.

    Quand faccio caricare il form in pratica avrò una stringa doùi questo tipo:


    $articolo=[img]cartella/nomefile.jpg[/img]un po' di testo[img]cartella/nomefile.jpg[/img]

    In pratica mi servirebbe tirare fuori nomefile.jpg da ogni tag img.

    Ho cercato un po', sembra che l'unica cosa siano le espressioni regolari dove non sono per nulla ferrato.

    Mi dareste una manina?

    Grazie in anticipo!

  2. #2
    Utente di HTML.it L'avatar di Secta
    Registrato dal
    May 2002
    Messaggi
    365
    Prova questo

    preg_match_all('/src=\'(.*?)\'/', $articolo, $match);
    var_dump($match);
    "Dai diamanti non nasce niente, dal letame nascon fiori."
    Fabrizio De Andrè

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    617
    mi esce fuori questo:

    array(2) { [0]=> array(0) { } [1]=> array(0) { } }

    bho!

    Grazie in anticipo!

  4. #4
    Utente di HTML.it L'avatar di Secta
    Registrato dal
    May 2002
    Messaggi
    365
    Io l'ho scritta basandosi su questo

    $articolo= "[img]cartella/nomefile1.jpg[/img]un po' di testo[img]cartella/nomefile2.jpg[/img]";
    preg_match_all('/src=\'(.*?)\'/', $articolo, $match);
    var_dump($match);

    L'ho appena provata e funziona... sei sicuro di racchiudere il contenuto di src tra apici singoli e non doppi?
    "Dai diamanti non nasce niente, dal letame nascon fiori."
    Fabrizio De Andrè

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    617
    Hai ragione, era con apici doppi eccola:

    [img]../../img_news/facebook_photo_140706639336491.jpg[/img]

    Come dovrei cambiare la funzioncina a questo punto?

    Grazie in anticipo

  6. #6
    Utente di HTML.it L'avatar di Secta
    Registrato dal
    May 2002
    Messaggi
    365
    Codice PHP:
    preg_match_all('/src="..\\/..\\/img_news\\/(.*?)"/'$articolo$match);
    var_dump($match); 
    "Dai diamanti non nasce niente, dal letame nascon fiori."
    Fabrizio De Andrè

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    617
    Niente da fare, copiato e incollato pari pari dal tuo post, esce sempre questo:

    array(2) { [0]=> array(0) { } [1]=> array(0) { } }

    eppure il tag img che ti ho dato è giusto adesso.

    Non è che rompe il fatto che c'è pure del testo vicino ai tag? Oppure il fatto che arrivi da una variabile post magari.

    Bho, adesso ti posto quello che viene salvato nel database:



    [img]../../img_news/facebook_photo_140706672669821.jpg[/img]</p>


    </p>


    Testo epr riprova</p>

    In pratica l'editor mi genera i p ogni volta che vado a capo, non è che è quello?

    Grazie in anticipo!

  8. #8
    Utente di HTML.it L'avatar di Secta
    Registrato dal
    May 2002
    Messaggi
    365
    Sinceramente ho fatto una prova e funziona perfettamente con quanto hai postato

    Ma il l'ho provato con l'output che tu mi stai mostrando... non è che da qualche parte fai qualche escape o altro?
    "Dai diamanti non nasce niente, dal letame nascon fiori."
    Fabrizio De Andrè

  9. #9
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    617
    no, niente.

    Allora il form invia i dati al foglio php ed ecco cosa scrivo NEL FOGLIO:

    codice:
    $articolo=$_POST['articolo'];
    
    preg_match_all('/src="..\/..\/img_news\/(.*?)"/', $articolo, $match);
    var_dump($match);
    Nient'altro, il resto è tutto commentato praticamente perchè vorrei vedere il risultato di questa "ricerca", ho provato anche a fare un eco di $match ma mi esce solo Array.

    Dove potrei aver sbagliato?

    Grazie in anticipo!

  10. #10
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    617
    Allora, ho fatto la stessa operazione però usando la variabile fissa, mettendo direttamente il valore della stringa e il risultato non era buono, come hai visto prima, però poi mi sono reso conto che c'era un array in una array(possibile?) ed ecco cosa ho fatto per tirare fuori i dati:

    codice:
    $articolo="
    
    <img stylw=\"width:300px\" src=\"../../img_news/facebook_photo_140706672669821.jpg\" alt=\"\" /></p>
    
    
     </p>
    
    
    Testo epr riprova</p>";
    
    preg_match_all('/src="..\/..\/img_news\/(.*?)"/', $articolo, $match);
    
    
    foreach($match as $bho){
    	
    	foreach($bho as $ciao){
    		
    		echo"$ciao
    ";
    		
    		}
    	}
    Il risultato è questo:

    src="../../img_news/facebook_photo_140706672669821.jpg"
    facebook_photo_140706672669821.jpg

    in pratica mi tira fuori dall'inizio di src fino alla fine e poi il nome del file, io vorrei solo il nome del file.

    Grazie in anticipo!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.