Visualizzazione dei risultati da 1 a 6 su 6

Discussione: Problema preg_match

  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2007
    Messaggi
    157

    Problema preg_match

    Molto semplice...
    Non va e non so più dove batacchiare la testa!
    Codice PHP:
    function CreaArrayColore($Stringa) {
        
    //$contenuto = file_get_contents("immagini/colori.xml");
        
    $contenuto '<colori>
    <colore codice_hex="000000" codice_interno="000" nome="nero"/>
    <colore codice_hex="929292" codice_interno="999" nome="grigio"/>
    <colore codice_hex="9a9494" codice_interno="332" nome="nome colore 3"/>
    <colore codice_hex="dadada" codice_interno="901" nome="nome colore 4"/>
    <colore codice_hex="afafaf" codice_interno="220" nome="nome colore 5"/>
    <colore codice_hex="da7b20" codice_interno="400" nome="nome colore 6"/>
    <colore codice_hex="928677" codice_interno="128" nome="nome colore 7"/>
    <colore codice_hex="a38966" codice_interno="902" nome="nome colore 8"/>
    <colore codice_hex="95683d" codice_interno="366" nome="nome colore 9"/>
    </colori>'
    ;
        
        
    preg_match("/<colore[ ]+codice_hex=\"(.*)\"[ ]+codice_interno=\"$Stringa\"[ ]+nome=\"(.*)\"[ ]+\/>/",$contenuto,$regs);

        
    print_r($regs);

    }


     
    CreaArrayColore("999"); 
    l'out è vuoto..
    Codice PHP:
    Array ( ) 
    mentre io volevo recuperare un array con dentro il valore del "codice_hex" e il valore del "nome".
    ad esempio:
    Codice PHP:
    Array ([1]=>"929292", [2]=>"grigio" 
    Che sbaglio??


    Grazie mille anticipatamente

  2. #2
    Perchè non usi le funzioni di manipolazione di XML invece delle espressioni regolari?

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2007
    Messaggi
    157
    Originariamente inviato da filippo.toso
    Perchè non usi le funzioni di manipolazione di XML invece delle espressioni regolari?
    in primis perchè non le conosco, poi perchè con le regexp penso di risolvere il problema con una riga e invece come al solito ci sono annesse un mucchio di beghe..
    sai darmi qualche dritta per risolvere questo caso utilizzando le xml parser?

  4. #4
    scusate se mi inserisco senza aprire una nuova discussione...
    dovrei fare un controllo su una stringa alfanumerica tipo questa: 4nt4goni4, cioè i numeri devono essere presenti all'interno della stringa da un minimo di 1 ad un massimo di 3.

    ho fatto cosi ma ovviamente non funziona:
    codice:
    if (ereg("[a-z0-9\?]{1,3}", "4nt4goni4")) {
    Cosa mi dite?
    Grazie mille

  5. #5
    Utente di HTML.it L'avatar di lloyd27
    Registrato dal
    Mar 2006
    Messaggi
    256
    Codice PHP:
    preg_match('/\<colore codice_hex\=\"(?P<codice_hex>\\d){6}\" codice_interno\=\"' $codice '\" nome\=\"(?P<nome>[^\"]+)\"\/\>/'$contenuto$regs); 
    dovrebbe funzionare

    e se hai dubbi che gli spazi tra gli attributi possano essere più di uno puoi mettere al loro posto
    ([ ]*)

  6. #6
    Utente di HTML.it
    Registrato dal
    Oct 2007
    Messaggi
    157
    grazie mille, problema risolto.

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.