Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1

    Estrarre numeri da una stringa

    Data una determinata stringa è possibile estrarne solo i numeri?

    Mi spiego meglio. Ho un sistema (tinymce) che mi genera dei codici html di immagini molto complessi e dalle varie articolazioni, di questo tipo:

    codice:
    [img]includes/tiny_mce/plugins/filemanager/files/gif/new034.gif[/img]
    
    [img]includes/tiny_mce/plugins/filemanager/files/immagini/napoli/vari/napoli_09.jpg[/img]
    
    [img]includes/tiny_mce/plugins/filemanager/files/immagini/sicilia/maiorana_antonio.jpg[/img]
    
    [img]includes/tiny_mce/plugins/filemanager/files/immagini/6_vari/brogli.jpg[/img]
    
    [img]includes/tiny_mce/plugins/filemanager/files/immagini/3_loghi/trofeo_moretti2007.jpg[/img]
    Qualcuno di voi sarebbe in grado, con una sola funzione di manipolazione stringa, di estrarre il valore numerico di height, in ognuno dei casi sopraelencati?

    Va bene anche solo quello width se qualcuno ha qualche idea.

    La funzione deve comunque essere univoca e deve andare bene per tutti gli esempi.

    Grazie

  2. #2
    Moderatore di Off Topic, Kickstarter e XML L'avatar di Sky
    Registrato dal
    Jul 2000
    residenza
    Roma
    Messaggi
    1,053
    preg_match_all('/height="([0-9]+)"/i', $stringa, $occorrenze);

    L'espressione regolare usata ricerca nella variabile $stringa tutte le occorrenze di height="x" dove x corrisponde a un numero composto da almeno una cifra. La ricerca sarà case insensitive perché abbiamo impostato il modificatore "i". Togliendolo la ricerca terrà conto delle maiuscole e delle minuscole

    La funzione creerà l'array $occorrenze a due dimensioni.

    In $occorrenze[0] c'è un sottoarray con le stringhe corrispondenti all'intero schema dell'espressione regolare.
    Invece, in $occorrenze[1], il sottoarray conterrà tutti valori di height trovati.

    Nel codice HTML che hai specificato il risultato di questa funione è il seguente

    codice:
    Array
    (
        [0] => Array
            (
                [0] => height="15"
                [1] => height="112"
                [2] => height="148"
                [3] => height="124"
                [4] => height="150"
            )
    
        [1] => Array
            (
                [0] => 15
                [1] => 112
                [2] => 148
                [3] => 124
                [4] => 150
            )
    Lo Stato deve dare ai cittadini, come diritto, ciò che la mafia dà come favore.
    Carlo Alberto dalla Chiesa

    Facebook | Twitter | Last.fm | LinkedIn | Quora

  3. #3
    Benissimo grazie!!!

    Era proprio quello che volevo, anche se non sono molto bravo a sfruttare gli array ...

    Lascia che ti spieghi lo scopo finale della mia funzione. Forse tu puoi aiutarmi a realizzarla.

    Ho creato un file che si chiama art_jpg.php dove dentro ho inserito uno script di image resize (che restituisce una jpeg) che funziona in base a 3 parametri:
    "w" = larghezza dell'immagine rielaborata
    "h" = altezza dell'immagine rielaborata
    "s" = source del file immagine

    Vorrei così sostituire il src dell'immagine con il file art_jpg.php e i relativi parametri di rigenerazione.

    Ammesso che so a priori che, nei contenuti inseriti, il "src=" può essere solo di un immagine, e non di altri tipi di file, avevo pensato di risolvere con delle funzioni di sostituzione di stringa.

    Facciamo quindi che in una variabile $string ho il contenuto sopracitato:
    codice:
    [img]includes/tiny_mce/plugins/filemanager/files/gif/new034.gif[/img]
    
    [img]includes/tiny_mce/plugins/filemanager/files/immagini/napoli/vari/napoli_09.jpg[/img]
    
    [img]includes/tiny_mce/plugins/filemanager/files/immagini/sicilia/maiorana_antonio.jpg[/img]
    
    [img]includes/tiny_mce/plugins/filemanager/files/immagini/6_vari/brogli.jpg[/img]
    
    [img]includes/tiny_mce/plugins/filemanager/files/immagini/3_loghi/trofeo_moretti2007.jpg[/img]
    Vorrei che, grazie ad una funzione creata da noi, il contenuto venga corretto in questo modo:
    codice:
    [img]art_jpg.php?h=15&w=20&s=includes/tiny_mce/plugins/filemanager/files/gif/new034.gif[/img]
    
    [img]art_jpg.php?h=112&w=150&s=includes/tiny_mce/plugins/filemanager/files/immagini/napoli/vari/napoli_09.jpg[/img]
    
    [img]art_jpg.php?h=148&w=120&s=includes/tiny_mce/plugins/filemanager/files/immagini/sicilia/maiorana_antonio.jpg[/img]
    
    [img]art_jpg.php?h=140w=124&s=includes/tiny_mce/plugins/filemanager/files/immagini/6_vari/brogli.jpg[/img]
    
    [img]art_jpg.php?h=150&w=120&s=includes/tiny_mce/plugins/filemanager/files/immagini/3_loghi/trofeo_moretti2007.jpg[/img]
    Per fare questo occorre estrarre anche il "width" chiaramente, ma non penso sia questo il problema. Mi preoccupo di più di come sfruttare l'array per poter ricompilare il contenuto dei "src=".
    Non so se sono stato chiaro.

    Sapresti aiutarmi?

    Te ne sarei infinitamente grato.
    Sono a tua dispozione per tutto.

    GRAZIE!!

  4. #4
    Moderatore di Off Topic, Kickstarter e XML L'avatar di Sky
    Registrato dal
    Jul 2000
    residenza
    Roma
    Messaggi
    1,053
    Sto uscendo dall'ufficio, stasera da casa tiro giù qualche riga di codice e risolviamo :)
    Ciao!
    Lo Stato deve dare ai cittadini, come diritto, ciò che la mafia dà come favore.
    Carlo Alberto dalla Chiesa

    Facebook | Twitter | Last.fm | LinkedIn | Quora

  5. #5
    Ancora grazie infinite!

  6. #6
    Moderatore di Off Topic, Kickstarter e XML L'avatar di Sky
    Registrato dal
    Jul 2000
    residenza
    Roma
    Messaggi
    1,053
    Non volevo deluderti ma getto la spugna, a prima vista mi sembrava più facile...
    Devo andare in ferie, non ce la faccio più a vedere codice php :S

    Comunque sul forum ci sono persone molto più preparate di me, sei in buone mani
    Ciao, buon lavoro!
    Lo Stato deve dare ai cittadini, come diritto, ciò che la mafia dà come favore.
    Carlo Alberto dalla Chiesa

    Facebook | Twitter | Last.fm | LinkedIn | Quora

  7. #7
    Non ti preoccupare... sei stato molto gentile. Riuscire ad estrarre i parametri è gia stato abbastanza. Continuerò io con dei tentativi. Magari posterò la soluzione!

    Buone ferie!

  8. #8
    Moderatore di Off Topic, Kickstarter e XML L'avatar di Sky
    Registrato dal
    Jul 2000
    residenza
    Roma
    Messaggi
    1,053
    Grazie, anche a te se devi ancora averle
    Lo Stato deve dare ai cittadini, come diritto, ciò che la mafia dà come favore.
    Carlo Alberto dalla Chiesa

    Facebook | Twitter | Last.fm | LinkedIn | Quora

  9. #9
    Prova un po' con questa... l'ho scritta un po' di fretta, sto uscendo anch'io dal lavoro! ^_^

    codice:
    function sostituzione($string)
    {
        eregi("width=\"([0-9]+)\"", $string, $w);
        eregi("height=\"([0-9]+)\"", $string, $h);
    
        $width = $w[1];
        $height = $h[1];
    
        $nuova_stringa = eregi_replace("src=\"([a-z0-9_\-\./ ]+)\"", "src=\"art_jpg.php?h=$height&w=$width&s=\\1\"",
            $string);
    
        return $nuova_stringa;
    
    }

    Ciaoooo!

  10. #10
    Funziona benissimo!!! GRAZIE!

    Ti volevo chiedere un ultimo favore.
    Si potrebbe fare in modo che la sostituzione della stringa avvenga solo se il "src=" termini con un (.jpg) o (.gif) o (.png) ?

    Grazie ancora!

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.