Visualizzazione dei risultati da 1 a 9 su 9

Discussione: Problema regex

  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    1,317

    Problema regex

    Non mi funziona la regex:
    codice:
    $regex = <<<EOT
    <?php /*O:10:"Cache":3:{s:3:"dir";s:3:".//";s:4:"file";s:10:"config.php";s:6:"config";a:10:{s:6:"dbhost";s:9:"localhost";s:6:"dbuser";s:4:"root";s:6:"dbpass";s:5:"mysql";s:6:"dbtype";s:6:"mysqli";s:6:"prefix";s:9:"revokebb_";s:6:"dbname";s:6:"nukebb";s:12:"cache_active";s:1:"1";s:9:"cache_dir";s:1:"/";s:10:"cache_time";s:2:"-1";s:4:"lang";s:7:"italian";}}
    EOT;
    
    if ( preg_match( "/[^\<\?php \/\*]+[^\/\* \?\>]/i" , $regex , $return ) )
    {
    	#print_r($return);
    	return unserialize( $return[0] );
    }
    il mio scopo è di selezionare tutto ciò che sta all'interno del commento

  2. #2
    Non e' molto chiaro cosa vuoi selezionare: se il commento e' quello che inizia con /* allora non e' chiuso. Specifica meglio.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    1,317
    codice:
    $regex = <<<EOT
    <?php /*O:10:"Cache":3:{s:3:"dir";s:3:".//";s:4:"file";s:10:"config.php";s:6:"config";a:10:{s:6:"dbhost";s:9:"localhost";s:6:"dbuser";s:4:"root";s:6:"dbpass";s:5:"mysql";s:6:"dbtype";s:6:"mysqli";s:6:"prefix";s:9:"revokebb_";s:6:"dbname";s:6:"nukebb";s:12:"cache_active";s:1:"1";s:9:"cache_dir";s:1:"/";s:10:"cache_time";s:2:"-1";s:4:"lang";s:7:"italian";}}*/ ?>
    EOT;
    
    if ( preg_match( "/[^\<\?php \/\*]+[^\/\* \?\>]/i" , $regex , $return ) )
    {
    	#print_r($return);
    	return unserialize( $return[0] );
    }
    Ora dovrebbe andare bene

    io voglio selezionare tutta la stringa serializzata, ovvero:
    <?php /*{devo selezionare qui}*/ ?>

  4. #4
    scusa la domanda, ma non potresti semplicemente includere il file eusare l'unserialize ?
    Chiamatemi sven se volete non ho voglia di fare una nuova email per una nuova registrazione xD
    Mac Future User , Ventilatore for PC Cooler user , - dry is coming -

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    1,317
    Originariamente inviato da bonaprogram
    scusa la domanda, ma non potresti semplicemente includere il file eusare l'unserialize ?
    no

  6. #6
    Perché usare lo string replace????
    Codice PHP:
    $regex = <<<EOT
    <?php /*O:10:"Cache":3:{s:3:"dir";s:3:".//";s:4:"file";s:10:"config.php";s:6:"config";a:10:{s:6:"dbhost";s:9:"localhost";s:6:"dbuser";s:4:"root";s:6:"dbpass";s:5:"mysql";s:6:"dbtype";s:6:"mysqli";s:6:"prefix";s:9:"revokebb_";s:6:"dbname";s:6:"nukebb";s:12:"cache_active";s:1:"1";s:9:"cache_dir";s:1:"/";s:10:"cache_time";s:2:"-1";s:4:"lang";s:7:"italian";}}*/ ?>
    EOT;

    $regex = str_replace("<?php /*", "", $regex);
    $regex = str_replace("*/ 
    ?>", "", $regex);
    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  7. #7
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    1,317
    Originariamente inviato da alcio74
    Perché usare lo string replace????
    se lo faccio, e dopo un utente nella configurazione inserisce <?php /* o */ ?> mi fa il casino...
    a me serve solo IL PRIMO <?php /* e l'ultimo */ ?>

  8. #8
    Un semplice:

    codice:
    preg_match("#<\?php /\*(.*)\* \?>/#", $regex, $return);
    ?

  9. #9
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    1,317
    Originariamente inviato da k.b
    Un semplice:

    codice:
    preg_match("#<\?php /\*(.*)\* \?>/#", $regex, $return);
    ?
    sei mejo te...

    apparte gli scherzi: grazie

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.