Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    Trovare le immagini con le RegEx

    Ciao.

    Mettiamo che io abbia un testo HTML che contiene delle immagini.
    Io voglio trovare tutte le immagini... e ci sono quasi! solo che le regular expressions sono un po' ostiche per me.

    Il mio codice è questo:
    Codice PHP:
    <?php
    $testo 
    "

    <span style=\"color: rgb(51, 204, 204);\">

    </span><span style=\"color: rgb(51, 204, 204);\">Prova di news con 2 immagini, 
    </span></p>


    <span style=\"color: rgb(51, 204, 204);\"><img height=\"225\" width=\"300\" alt=\"INVERNO\" src=\"/publicom/userfiles/images/Inverno.jpg\" /></span>
    <span style=\"color: rgb(51, 204, 204);\"><img height=\"225\" width=\"300\" alt=\"INVERNO2\" src=\"/publicom/userfiles/images/Inverno2.jpg\" /></span>"
    ;

    preg_match_all('/src=\\"(?P<imm>.*)\\"\\s/'$testo$resultPREG_SET_ORDER);
    for (
    $matchi 0$matchi count($result); $matchi++) {
            echo 
    "
    "
    .$result[$matchi][1];

    }

    ?>
    Per funzionare funziona... solo che vorrei capire un paio di cose...

    1) come lo uso il capturing group <imm> all'interno del mio codice php? Come vedete l'ho dichiarato ma non lo uso mai... immagino che a qualcosa serva sel l'hanno inventato.. no?

    2) c'è un modo più furbo di scrivere la stessa cosa?

    Grazie
    Dice il saggio:
    Non ci sono domande difficili, esistono solo risposte che non conosciamo!
    "Se qualcosa può andare male, lo farà" - Murphy

  2. #2
    probabilmente più semplicemente

    preg_match_all('#<.*?img.+?src=("|\')?(.+?)("|\'). *?>?#i', $contenuto, $output);

    non l'ho minimante provata ma dovrebbe funzionare

    ---

    codice:
    <?php
    
    $contenuto = file_get_contents('http://www.html.it');
    preg_match_all('#<.*?img.+?src=("|\')?(.+?)("|\').*?>?#i', $contenuto, $output);
    
    foreach($output[2] as $key => $value)
    {
        echo "{$value} <img src=\"{$value}\" style=\"height: 20px; vertical-align: middle;\">
    ";
    }
    
    ?>
    direi che funziona
    The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand

  3. #3
    Ho provato la tua espressione ma mi dà un errore...
    pare infastidito da questo pezzo (te lo segno in rosso):

    preg_match_all('#<.*?img.+?src=("|')?(.+?)("|').*?>?#i', $contenuto, $output);

    La interpreta come una chiusura del php....
    Dice il saggio:
    Non ci sono domande difficili, esistono solo risposte che non conosciamo!
    "Se qualcosa può andare male, lo farà" - Murphy

  4. #4
    Come non detto... facendo l'escape dei caratteri " e ' torna tutto. Molte grazie.

    Se ho bisogno ancora ti faccio un fischio
    Dice il saggio:
    Non ci sono domande difficili, esistono solo risposte che non conosciamo!
    "Se qualcosa può andare male, lo farà" - Murphy

  5. #5
    Originariamente inviato da cleverboy
    Come non detto... facendo l'escape dei caratteri " e ' torna tutto. Molte grazie.

    Se ho bisogno ancora ti faccio un fischio
    forse hai una versione un pò vecchia di php
    The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand

  6. #6
    PHP 4.3.1

    Uso easy-php 1.80 per comodità.
    Avevo provato anche il 2.0 (che ha la versione php 5) ma ha dei problemi tutt'altro che irrilevanti!
    Dice il saggio:
    Non ci sono domande difficili, esistono solo risposte che non conosciamo!
    "Se qualcosa può andare male, lo farà" - Murphy

  7. #7
    Originariamente inviato da cleverboy
    PHP 4.3.1

    Uso easy-php 1.80 per comodità.
    Avevo provato anche il 2.0 (che ha la versione php 5) ma ha dei problemi tutt'altro che irrilevanti!
    in pratica hai una versione di 4/5 anni fà ... ottimo ^^

    io direi di cestinare easyphp e installare a manina tutto che, oltre ad impararti un pò di roba fondamentale del php (vedi estensioni, settaggio password di mysql e cosi via), ti aggiorni l'ambiente a php 5.2.6, apache 2.2.9, mysql 5.0.xxx e cosi via
    The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand

  8. #8
    Finisco il lavoro che ho in ballo e poi magari passo all'installazione manuale.

    Cmq, tanto per chiarire, ho sempre usato la versione "manuale", son passato a easyphp perché non usavo molto PHP da tempo e non avevo voglia di perderci una giornata ad installare tutto (se non ricordo male per installare php5 avevo già avuto problemi in passato... spero che la versione nuova sia più decente della 5.0).
    Dice il saggio:
    Non ci sono domande difficili, esistono solo risposte che non conosciamo!
    "Se qualcosa può andare male, lo farà" - Murphy

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.