Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    25

    [PHP - Preg_Match] Selezionare valore specifico

    Dopo 2-3 ore di tentativi mi son arreso, quindi chiedo lumi a qualcuno di più esperto. Dunque ho il seguente codice CSS salvato in una stringa

    codice:
    #blue_html_1{
    position:relative;
    display:block;
    visibility:visible;
    padding:0px;
    margin:0px;
    width:30%;
    height:30%;
    border-style:solid;
    border-width:1px;
    border-color:#cccccc;
    }
    Ora vorrei ottenere solo il valore proprietà 'display' (quindi block) , che tipo di regex devo usare? Sono riuscito a fare questo

    Codice PHP:
     $regex "/#blue_html_1{(.*?)}/"
    che mi restituisce tutto il contenuto. Come caspita posso fare ad ottenere solo "block"? Devo usare il Preg_match per ottenere il valore ed il posizionamento tramite il PREG_OFFSET_CAPTURE

    Grazie mille spero mi possiate dare una mano, i'm desperate!!!

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Con le regex non sono bravo, però dato che hai il contenuto di #blue_html_1, ora puoi fare così (un po' macchinosa come soluzione, ma fa quello che chiedi)
    Codice PHP:
    //supponendo che sia in una variabile di nome $regole_css
    $regole explode(';',$regole_css);

    foreach (
    $regole as $regola)
    {
        if (
    strstr($regola,'display'))
        {
            
    $display explode(':',$regola);
            
    $display trim($display[1]);
            break;
        }
    }

    echo 
    $display

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    25
    Originariamente inviato da Alhazred
    Con le regex non sono bravo, però dato che hai il contenuto di #blue_html_1, ora puoi fare così (un po' macchinosa come soluzione, ma fa quello che chiedi)
    Codice PHP:
    //supponendo che sia in una variabile di nome $regole_css
    $regole explode(';',$regole_css);

    foreach (
    $regole as $regola)
    {
        if (
    strstr($regola,'display'))
        {
            
    $display explode(':',$regola);
            
    $display trim($display[1]);
            break;
        }
    }

    echo 
    $display
    Grazie della risposta, avevo pensato di usare l'explode dato che mi pareva l'unica soluzione. E' solo che quando non mi esce una cosa m'incaponisco e finché non risolvo ci sbatto la capoccia, eheh!
    Ad ogni modo ciò che dovrei fare è:

    1. aprire un file .css
    2. salvare il contenuto in una variabile
    3. modificare la proprietà desiderata del relativo id / classe
    4. riscrivere il file css aggiornato.

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.