Visualizzazione dei risultati da 1 a 6 su 6

Discussione: [REGEXP] import css

  1. #1
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012

    [REGEXP] import css

    Buongiorno a tutti,

    ho questo codice (non formatto per non perdere i backslash)


    <pre>
    <?php
    $x=array(
    "@import url(\"x.css\"); ciao mondo",
    "@import url('x.css')",
    "@import url \"x.css\" ",
    "@import url 'x.css'",
    "@import \"x.css\" ",
    "@import 'x.css'",
    );

    foreach($x as $i){
    $pattern="/@import.*[(\"'](.*)[\"')]/sxi";
    preg_match($pattern,$i,$results);
    print_r($results);
    }
    ?>


    devo recuperare il link del css importato
    sulle prime 2 non fà match... cosa sbaglio?

    uso le regexp ma non sono proprio una cima...

    se poi il pattern è da stravolgere totalmente non mi meraviglierei

    grazie a chiunque mi possa aiutare
    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

  2. #2
    E' un incubo scrivere su sto forum mangiabackslash...

    Comunque:

    codice:
    $x = array(
        '@import url("x.css"); ciao mondo',
        '@import url(\\'x.css\\')',
        '@import url "x.css" ',
        '@import url \\'x.css\\'',
        '@import "x.css" ',
        '@import \\'x.css\\'',
    );
    
    foreach ($x as $i) {
        $pattern = '
            /          # inizio pattern
            @import    # stringa @import
            \s*        # eventuali spazi
            (?:url)?   # stringa url opzionale
            \s*        # eventuali spazi
            \(?        # aperta parentesi opzionale
            [\\'"]      # apice o virgolette
            (.*?)      # cattura tutto fin al prossimo...
            [\\'"]      # ...apice o virgolette
            \)?        # chiusa parentesi tonda opzionale
            /x';       # fine pattern
        preg_match($pattern, $i, $match);
        print_r($match);
    }

  3. #3
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012
    Originariamente inviato da k.b
    E' un incubo scrivere su sto forum mangiabackslash...

    Comunque:

    codice:
    $x = array(
        '@import url("x.css"); ciao mondo',
        '@import url(\\'x.css\\')',
        '@import url "x.css" ',
        '@import url \\'x.css\\'',
        '@import "x.css" ',
        '@import \\'x.css\\'',
    );
    
    foreach ($x as $i) {
        $pattern = '
            /          # inizio pattern
            @import    # stringa @import
            \s*        # eventuali spazi
            (?:url)?   # stringa url opzionale
            \s*        # eventuali spazi
            \(?        # aperta parentesi opzionale
            [\\'"]      # apice o virgolette
            (.*?)      # cattura tutto fin al prossimo...
            [\\'"]      # ...apice o virgolette
            \)?        # chiusa parentesi tonda opzionale
            /x';       # fine pattern
        preg_match($pattern, $i, $match);
        print_r($match);
    }


    eccellente....

    grazie mille!!
    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

  4. #4
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012
    domanda:

    ma la x dopo il pattern non elimina già eventuali spazi?
    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

  5. #5
    No la x dopo il pattern ti permette di scriverlo su piu' righe, inserire commenti ed ignorare gli spazi (intesi in senso ampio: spazi, tab, a capo) nel pattern non gli spazi nel testo (cioe' e' quello che ti permette di scriverlo su piu' righe).

  6. #6
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012
    ottimo,

    grazie molte per la tua disponibilità
    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

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.