Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Moderatore di Macintosh e software L'avatar di olivs
    Registrato dal
    Jan 2001
    Messaggi
    8,906

    [PHP] Cercare dentro una stringa

    Ho una stringa $_SERVER['QUERY_STRING'] fatta cosi:
    $paginaVar='lang=it&...&pref=12';
    dove i puntini indicano la presenza o meno di altre variabili quindi non ne conosco a priori la lunghezza.
    Vorrei semplicemente fare un controllo su questa e sapere se esiste pref, se c'è toglierlo.

  2. #2
    Moderatore di Macintosh e software L'avatar di olivs
    Registrato dal
    Jan 2001
    Messaggi
    8,906
    up

  3. #3
    dopo l'uguale di pref (se esiste) ci sarà sempre e solo un valore numerico?

    codice:
    $qs="prova1&pref=12prova2";
    $qs = preg_replace("/(\w+)(&pref=\d+)(\w+)/e", "'\\1\\3'", $qs);
    echo "
    \n".$qs;






    Talvolta anche una persona apparentemente inutile si rivela un abile samurai dalla forza di mille uomini, dimostrando di poter rinunciare alla vita e che il suo cuore si è completamente identificato con quello del suo padrone

  4. #4
    Moderatore di Macintosh e software L'avatar di olivs
    Registrato dal
    Jan 2001
    Messaggi
    8,906
    si dopo pref ci DEVE sempre essere un valore numerico, se non ci fosse però andrebbe tolto comunque il pref=

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2004
    Messaggi
    1,141
    Se non sai a prescindere se dopo pref= ci sia qualcosa,prova questa:


    Codice PHP:
    $paginaVar='lang=it&....&pref=12';
    echo 
    "result : ".substr($paginaVar0strlen($paginaVar) - strlen(strstr($paginaVar,"&pref"))); 
    ciao

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    434
    senza le espessioni regolari...
    codice:
    $qs = "tuaquerystring..";
    $qs = explode("&", $qs);
    foreach($qs as $key => $item) {
      $item = explode("=", $item);
      if($item[0] == "pref") {
        unset($qs[$key]);
      }
    }
    $qs = implode("&", $qs);
    in $qs ottieni la nuova query string

  7. #7
    ho modificato un attimo la preg ora dovrebbe andare, non che prima non andasse


    ma ora va anche se dopo non ci metti nulla

    codice:
    $qs1="lang=it&var=7&pref=";
    $qs2="lang=it&var=7&pref=74&altravar=14";
    
    $qs = preg_replace("/(\w+)(&pref=)(\d*)(.*)/e", "'\\1\\4'", $qs1);
    echo "esempio1: 
    \nVecchia QS: ".$qs1."
    \nNuova QS: ".$qs."
    \n";
    
    $qs = preg_replace("/(\w+)(&pref=)(\d*)(.*)/e", "'\\1\\4'", $qs2);
    echo "esempio2: 
    \nVecchia QS: ".$qs2."
    \nNuova QS: ".$qs."
    \n";
    Talvolta anche una persona apparentemente inutile si rivela un abile samurai dalla forza di mille uomini, dimostrando di poter rinunciare alla vita e che il suo cuore si è completamente identificato con quello del suo padrone

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.