Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2006
    Messaggi
    53

    sostituzione slash con backslash

    ho letto i post precedenti ma non ho trovato nulla... purtroppo

    voelvo sostituire gli slash con i backslash ed ho usato un semplice str_replace ma non mi restituisce quello che voglio

    ecco il codice:

    $stringa="\\10.51.12.36\tmp\16222.txt";
    $stringa = str_replace("\\", "/", $stringa);

    e mi restituisce questa porcheria: /10.51.12.36 mpr22.txt

    sbaglio io qualcosa, ma non capisco dove...

    se qualcuno ha idee

    ciao a tutti

  2. #2
    Ti consiglio di iniziare leggendo il manuale ufficiale, con particolare attenzione al concetto di escaping:

    http://www.php.net/manual/en/language.types.string.php

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2006
    Messaggi
    53
    Originariamente inviato da filippo.toso
    Ti consiglio di iniziare leggendo il manuale ufficiale, con particolare attenzione al concetto di escaping:

    http://www.php.net/manual/en/language.types.string.php
    anzitutto grazie per la risposta

    ho dato un'occhiata ma non ho capito molto di più

    il doppio \\ dovrebbe corrispondere a \ (backslash) e la sostituzione con / (slash) non ha bisogno di un carattere di escape (se non sbaglio)

    di più non saprei dire...

    se magari puoi farmi un esempio in base alla mia esigenza potrebbe essermi molto utile...

  4. #4
    <?php
    $stringa = "\\\\10.51.12.36\\tmp\\16222.txt";
    $stringa = str_replace("\\", "/", $stringa);
    echo($stringa);
    ?>

  5. #5
    Utente di HTML.it
    Registrato dal
    Aug 2006
    Messaggi
    53
    Originariamente inviato da filippo.toso
    <?php
    $stringa = "\\\\10.51.12.36\\tmp\\16222.txt";
    $stringa = str_replace("\\", "/", $stringa);
    echo($stringa);
    ?>
    ok, fino qui ci siamo, ma se io ho questo "\\10.51.12.36\tmp\16222.txt" anzichè questo "\\\\10.51.12.36\\tmp\\16222.txt" sono da capo, almeno che non riesca a sostituire ogni \ (backslash) con \\ (doppio backslash)

    o mi sbaglio...

  6. #6
    Rilleggiti la pagina del manuale indicata.

    Una stringa PHP definita come $stringa = "\\10.51.12.36\tmp\16222.txt" NON contiene la stringa \\10.51.12.36\tmp\16222.txt, ma \10.51.12.36[TABULAZIONE]mp[#1 IN NOTAZIONE OTTALE]6222.txt

    Studiati meglio il concetto di escaping.

  7. #7
    Utente di HTML.it
    Registrato dal
    Aug 2006
    Messaggi
    53
    Originariamente inviato da filippo.toso
    Rilleggiti la pagina del manuale indicata.

    Una stringa PHP definita come $stringa = "\\10.51.12.36\tmp\16222.txt" NON contiene la stringa \\10.51.12.36\tmp\16222.txt, ma \10.51.12.36[TABULAZIONE]mp[#1 IN NOTAZIONE OTTALE]6222.txt

    Studiati meglio il concetto di escaping.
    grazie per la dritta, ma come posso fare?

  8. #8
    A fare cosa?

    Se sei tu a scrivere la stringa nel codice sorgente, ti basta scriverla correttamente (con il giusto escaping). Se ti arriva dall'esterno, allora dovrebbe contenere già il corretto escaping.

  9. #9
    Utente di HTML.it
    Registrato dal
    Aug 2006
    Messaggi
    53
    Originariamente inviato da filippo.toso
    A fare cosa?

    Se sei tu a scrivere la stringa nel codice sorgente, ti basta scriverla correttamente (con il giusto escaping). Se ti arriva dall'esterno, allora dovrebbe contenere già il corretto escaping.
    e se mi arriva dall'esterno senza esaping come posso risolvere?

  10. #10
    Se ti arriva dall'esterno senza escaping significa che la stringa che ti arriva dall'esterno NON contiene quello che credi, ma quanto indicato in precedenza (tab, #1 ottale, etc.).

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.