Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1

    ricerca valori da a in una stringa

    In pratica sto cercando di fare una funzione che dati due valori mi ritorni il primo intervallo tra i due
    Mi spiego meglio con un esempio:
    Codice PHP:
    //poniamo che la mia funzione si chiami InterShow
    echo InterShow("marco mangia la mela a casa""Marco""mela");
    //eseguirà "marco mangia la mela"

    echo InterShow("marco mangia la mela a casa""mangia""casa");
    //eseguirà "mangia la mela a casa"

    echo InterShow("marco mangia la mela a casa""marco""a");
    //eseguirà "marco ma"

    echo InterShow("marco mangia la mela a casa""a""melA");
    //eseguirà "arco mangia la mela"

    echo InterShow("marco mangia la mela a casa""marco""cane");
    //eseguirà ""

    echo InterShow("marco mangia la mela a casa""cAne""a");
    //eseguirà ""

    echo InterShow("marco mangia la mela a casa""mArco""");
    //eseguirà "marco mangia la mela a casa"

    echo InterShow("marco mangia la mela a casa""""La");
    //eseguirà "marco mangia la"

    //Come si può capire la funzione non deve essere case sensitive 
    Grazie in anticipo

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2008
    Messaggi
    218


    Non ho mica capito, sai?

  3. #3
    substr() non va bene?

    Codice PHP:
    <?php
    $sub 
    substr("marco mangia la mela a casa"5, -7);    // returns "mangia la mela"
    $sub substr("marco mangia la mela a casa"15);    // returns "mela a casa"
    $sub substr("marco mangia la mela a casa"0, -15);    // returns "marco mangia"
    ?>

  4. #4
    Utente di HTML.it L'avatar di Takeno
    Registrato dal
    May 2007
    Messaggi
    146
    Codice PHP:
    function InnerShow($string$from$to) {
      
    $string substr($stringstrpos($string$from));
      
    $string substr($string0strpos($string$to));
      return 
    $string;

    Prova... non l'ho provata

  5. #5
    Innanzi di tutto grazie dei vostri consigli...

    rielaborando un po' ho ottenuto questa:
    Codice PHP:
    <?php
    function InterShow($string$from$to) { 
    if(
    strlen($from)>0)
            
    $string substr($stringstrpos($string$from)); 

    if(
    strlen($to)>0)
      
    $string substr($string0strpos($string$to)+strlen($to)); 

      return 
    $string
    ?>
    mi mancano ancora i controlli per
    1) quando la $to è contenuto in $from e viceversa
    2) ricerca senza successo
    3) come lo metto not case sensitive anche per:
    Codice PHP:
    InterShow("marco mangia la mela a casa""""La"); 
    PS.Takeno complimenti per l'avatar

  6. #6
    up

  7. #7
    Utente di HTML.it L'avatar di las
    Registrato dal
    Apr 2002
    Messaggi
    1,221
    Così dovresti risolvere la ricerca senza successo e il case insensitive

    Codice PHP:
    function InterShow($string$from$to) {
    if(
    stripos($string$from)!== false &&stripos($string$to)!== false){
    if(
    strlen($from)>0)
            
    $string substr($stringstripos($string$from));

    if(
    strlen($to)>0)
      
    $string substr($string0stripos($string$to)+strlen($to));

      }
      else {
     
    $string "La ricerca non ha dato esito positivo";
      }

     return 
    $string;



  8. #8
    Originariamente inviato da mattealex

    mi mancano ancora i controlli per
    1) quando la $to è contenuto in $from e viceversa
    2) ricerca senza successo
    3) come lo metto not case sensitive anche per:
    Codice PHP:
    InterShow("marco mangia la mela a casa""""La"); 
    las quello riusciva anche a me
    a dire il vero ho un po' di difficoltà a fare i controlli 1, 2 e 3

    1) deve darmi un risultato comunque valido
    //con la funzione attuale il risultato è una sub di $from o $to
    2)deve dare come risultato ""
    3)mi sembra di averlo spiegato

    PS. scusa las avevo letto male Grazie

  9. #9
    Utente di HTML.it L'avatar di las
    Registrato dal
    Apr 2002
    Messaggi
    1,221
    Abbi pazienza ma non ho mica capito

    per il punto 1 non ho idea di come fare

    per il punto 2, ricerca senza successo, se vuoi come risultato "" basta che sostituisci

    $string = "La ricerca non ha dato esito positivo";

    con

    $string = "";

    Per il punto 3 la funzione che ti ho postato io è case insensitive, il tuo esempio

    InterShow("marco mangia la mela a casa", " ", "La");
    ///l'output serà "mangia la"

    a patto che però metta almeno uno spazio nel $from, altrimenti ovviamente ricadi nel punto 2 quindi otterrai come risultato ""

    P.S. scusa ho postato prima che correggessi il tuo post


  10. #10
    il
    punto due l'ho sistemato così:
    Codice PHP:
    <?php
    function InterShow($string$from$to) { 
    if(
    stripos($string$from)!== false && stripos($string$to)!== false || strlen($from)==|| strlen($to)==0)
    {
        if(
    strlen($from)>0)
                
    $string substr($stringstrpos($string$from)); 
        
        if(
    strlen($to)>0)
          
    $string substr($string0strpos($string$to)+strlen($to)); 
    }
    else
    $string="";
      return 
    $string
      
    }
    il punto 3 non mi funziona bene:
    Codice PHP:
    InterShow("marco mangia la mela a casa""""La");
    //output: "ma"
    InterShow("marco mangia la mela a casa""""la");
    //output: "marco mangia la" 
    il punto 1 è comunque quello che mi da più noia
    per esempio:
    Codice PHP:
    InterShow("marco mangia la mela a casa""marco""a");
    //output: "ma"
    //risultato sperato: "marco ma" 

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.