Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2003
    Messaggi
    87

    Espressioni regolari e tag img

    Avrei questo bisogno :

    1) leggo una pagina html (e fin qui tutto ok)
    2) se trovo il tag img devo nell'ordine :

    a) estrapolare il src="blabla"
    b) copiare l'immagine in una directory da me scelta (e questo lo so fare)
    c) cambiare da src="blabla" a src="immagine che ho copiato prima"

    Però sono una frana con le espressioni regolari.

    Qualcuno sa come fare?

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2003
    Messaggi
    87
    Up

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2003
    Messaggi
    87
    uppettino mattutino... o_o

  4. #4
    Moderatore di Server Apache L'avatar di marketto
    Registrato dal
    Sep 2001
    Messaggi
    5,858
    codice:
    $test="<img alt=\"ciao\" src=\"immagine01.jpg\">";
    $test=preg_replace("/\"/","",$test);
    preg_match("/(<img)(.*)( src=)(.*)(.jpg|.gif|.png)(.*)/i",$test,$ris);
    echo "nome immagine: ".$ris[4]."
    \n";
    echo "estensione: ".$ris[5]."
    \n";
    think simple think ringo

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2003
    Messaggi
    87
    Ti ringrazio, però funziona con una sola immagine, per farlo su tutte le immagini di un blocco di testo ho provato a usare preg_match_all ma non ho ottengo il risultato sperato.

    E se poi volessi sostituire il tag src con un nuovo indirizzo?

    Potresti aiutarmi?

  6. #6
    Utente di HTML.it L'avatar di kuarl
    Registrato dal
    Oct 2001
    Messaggi
    1,093
    riprendendo il codice di marchetto:

    Codice PHP:
    $test="<img alt=\"ciao\" src=\"immagine01.jpg\">";
    $test=preg_replace("/\"/","",$test);
    preg_match_all("/(<img)(.*)( src=)(.*)(.jpg|.gif|.png)(.*)/i",$test,$ris);
    foreach(
    $ris as $val) {
       echo 
    "nome immagine: [b]".$val[4]."[/b]
    \n"
    ;
       echo 
    "estensione: [b]".$val[5]."[/b]
    \n"
    ;

    per sostituire utilizzi la stessa espressione regolare, xò con un'altra funzione:

    Codice PHP:
    preg_replace("/(<img)(.*)( src=)(.*)(.jpg|.gif|.png)(.*)/i""$1 $2 src=\"tuoIndirizzo\" $6"$test); 
    dovrebbe funzionare

  7. #7
    Moderatore di Server Apache L'avatar di marketto
    Registrato dal
    Sep 2001
    Messaggi
    5,858
    codice:
    $test="<img alt=ciao src=\"immagine1.jpg\"> testo testo testo <img alt=ciao src=immagine2.jpg>";
    $test=preg_replace("/\"/","",$test);
    preg_match_all("|<img(.*)src=(.*)>|U",$test,$ris);
    echo "<pre>\n";
    print_r($ris[2]);
    echo "</pre>\n";
    think simple think ringo

  8. #8
    Utente di HTML.it
    Registrato dal
    Apr 2003
    Messaggi
    87
    Kuarl la tua non mi funziona proprio, mi stampa a video :

    nome immagine:
    estensione:
    nome immagine:
    estensione:
    nome immagine:
    estensione:
    nome immagine:
    estensione:
    nome immagine:
    estensione:
    nome immagine:
    estensione:
    nome immagine:
    estensione:



    L'ultima di marchetto mi funziona benissimo, ma se provo a usarla su del testo proveniente da un form (una textarea modificata con HTMLArea per essere precisi) non mi da risultati, credo sia qualcosa che dipende dalle " ma non riesco a risolvere da solo

  9. #9
    Moderatore di Server Apache L'avatar di marketto
    Registrato dal
    Sep 2001
    Messaggi
    5,858
    dipende dal tipo di formattazione effettuata da HTMLarea. dovresti provare a stampare il form e vedere come vengono gestire le virgolette.
    think simple think ringo

  10. #10
    Utente di HTML.it
    Registrato dal
    Apr 2003
    Messaggi
    87
    Infatti senza htmlarea funziona... ti dirò htmlarea la elimino, per ora non mi serve poi così tanto, userò dei bbcode. ^_^

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 © 2025 vBulletin Solutions, Inc. All rights reserved.