Visualizzazione risultati 1 fino 15 di 15

Discussione: Cercare in una stringa...

  1. #1
    Guest

    Predefinito Cercare in una stringa...

    Ciao a tutti,
    premetto che ho cercato è ho anche trovato qualche topic che poteva essere utile ma le soluzioni non fungevano...

    Io avrei bisogno di una funziona (più veloce è meglio è) che cerchi (le estensioni dei files) all'interno di una stringa...

    Avevo pensato a strpos con !== false ma fungeva solo se la parola da cercare era ad inizio stringa e conteneva solo quella...

    Io invece date alcune stringhe tipo queste:

    sito.com/files.zip

    sito.com/audio.mp3

    Ho bisogno di trovare (cioè sapere se è presente) quel tipo di estensione ad es .mp3 però le dovrebbe cercare a fine stringa così da evitare errori...

    Ho provato qualcosa ma nulla di utile!

    C'è qualcuno che potrebbe darmi una mano? Ovviamente devo cercare più estensioni in una stringa...

  2. #2
    L'avatar di dementialsite
    dementialsite non è connesso Super Moderatore
    Data registrazione
    19-10-2004
    Residenza
    fuori Padova
    Messaggi
    5,046

    Predefinito

    Nel tuo caso, ti basta usare la funzione strrpos (con 2 R).

    I parametri e il comportamento sono gli stessi di strpos (con 1 R) solo che, a differenza di quest'ultima, è restituito l'indice dell'ultima occorrenza della stringa, non della prima...

    Stammi bene...
    Le questioni tecniche hanno risposte migliori nel forum pubblico, non trovi?

    When you don't know your next step... improvise

    ALTERVISTA WANTS YOU!
    Vuoi diventare moderatore su AlterVista? Scopri come...

  3. #3
    Guest

    Predefinito

    Purtroppo non funziona correttamente, mi da gli stessi problemi della precedente...

    Che altre funzioni potrei provare?

  4. #4
    L'avatar di matt93
    matt93 non è connesso Utente
    Data registrazione
    01-09-2008
    Messaggi
    241

    Predefinito

    Codice PHP:
    function estensione($file){
    $d=explode(".",strtolower($file));
    $n=count($d);
    $n=$n--;
    return
    $d[$n];
    }
    prova questa ^^

  5. #5
    Guest

    Predefinito

    matt non funziona per niente...

    dementialsite, c'è un modo per verificare con strpos SOLO gli ultimi 3 caratteri? perchè se io devo trovare l'estensione zip ma la stringa fosse una query di google con la stessa parola si viene bloccato ugualmente...

    Questo controllo deve funzionare SOLO per le ultime 3 lettere della stringa...

    strrpos parte dalla fine ma non risolve il problema...

  6. #6
    Guest

    Predefinito

    Se è solo per le ultime 3, allora potresti provare così (forse il metodo non sarà dei migliori, però...):
    Codice PHP:
    <?php
    $string
    = 'http://www.sito.com/audio.mp3';
    $last = strlen( $string ) - 1;
    $ext = $string[$last - 2] . $string[$last - 1] . $string[$last];
    ?>

  7. #7
    Guest

    Predefinito

    Camba, sto provando e mi sembra funzioni perfettamente!!!!

    Grazie, in caso di problemi riposto

  8. #8
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,266

    Predefinito

    Citazione Originalmente inviato da superproxy Visualizza messaggio
    Avevo pensato a strpos con !== false ma fungeva solo se la parola da cercare era ad inizio stringa e conteneva solo quella...
    Strpos dovrebbe funzionare perfettamente... da quello che dici, sembra quasi che tu avessi invertito l'ordine dei parametri: strpos( $stringa, $cosa cercare )

  9. #9
    Guest

    Predefinito

    No non ho invertito ma prendi per esempio una query di google... se cerchi zip o vai su sitozip.com vieni bloccato lo stesso ...

    Io devo sapere solo l'estensione (se ce) quindi le ultime 3 lettere

  10. #10
    L'avatar di matt93
    matt93 non è connesso Utente
    Data registrazione
    01-09-2008
    Messaggi
    241

    Predefinito

    corretta la funzione...

    Codice PHP:
    function estensione($file){
    $d=explode(".",strtolower($file));
    $n=count($d)-1;
    return
    $d[$n];
    }
    è molto sicura di quel metodo in quanto le estensioni non sono per forza 3 lettere... ^^

  11. #11
    Guest

    Predefinito

    Si matt in effetti è vero! Normalmente quella di camba va bene perchè io devo limitare solo quei files che sono più soggetti a download tipo rar ace zip mp3 etc...

    Siccome adesso ne blocco pochi per ora lascio com'è! Tra un paio di giorni metterò la tua (che è un pò più professionale) poi ti faccio sapere...

    Scusate per l'OT ma sono troppo felice andate quì per tutti gli utenti di AV c'è una bella sorpresa

    EDIT: ehm mat a me non funziona ancora...
    Ultima modifica di superproxy : 05-07-2009 alle ore 15.16.50

  12. #12
    Guest

    Predefinito

    Citazione Originalmente inviato da matt93 Visualizza messaggio
    è molto sicura di quel metodo in quanto le estensioni non sono per forza 3 lettere... ^^
    Ed infatti io in quel topic ho specificato le famose ultime 3 lettere ;).

    Comunque mi sembra strano che non ti funzioni, superproxy, a me va:
    Codice PHP:
    <?php

    function estensione( $file ) {
    $d = explode( ".", strtolower( $file ) );
    $n = count( $d ) - 1;
    return
    $d[$n];
    }

    $string = 'http://www.somewebsite.com/downloads/0976/plugins.zip';
    $ext = estensione( $string );

    echo
    $ext;

    ?>
    In alternativa potresti usare pathinfo():
    Codice PHP:
    <?php

    $string
    = 'http://www.somewebsite.com/downloads/0976/plugins.zip';
    $ext = pathinfo( $string, PATHINFO_EXTENSION );

    echo
    $ext;

    ?>

  13. #13
    Guest

    Predefinito

    Camba, si funge... Grazie

    In effetti sarebbe meglio quello di matt... metti che un percorso finisce con mp3 lo bloccherebbe lo stesso (anche se basterebbe aggiungere uno slash alla fine)

  14. #14
    L'avatar di matt93
    matt93 non è connesso Utente
    Data registrazione
    01-09-2008
    Messaggi
    241

    Predefinito

    Codice PHP:
    function estensione($file){
    $d=explode(".",strtolower($file));
    $n=count($d)-1;
    return
    $d[$n];
    }
    echo
    estensione("percorso/al/file.zip");
    Funziona ora?

  15. #15
    Guest

    Predefinito

    Si si grazie era un problema mio...

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •