2010-03-27 8 views
2

je suis arrivé ce codeProblème chaîne de conversion de chemin "/", ""

$ current_path = str_replace ('\', '/', getcwd()); // c: // xampp/htdoc

Pourquoi l'échec remplace-t-il '\' par '/' dans le répertoire? pourquoi est la raison et comment gérer ce problème?

EDIT Ce code permet de renvoyer le chemin (ou quelque chose comme ça) à utiliser avec la base HTML TAG.



$current_path = getcwd(); 

function get_basepath() { 
    global $current_path; 

    $current_path = str_replace('\\', '/', $current_path);      // C:\xampp\htdocs\php\gettingstarted 

    $cur_root = $_SERVER['HTTP_HOST'];    // localhost 
    $cur_docroot = $_SERVER['DOCUMENT_ROOT'];  // C:/xampp/htdocs/ 
    $cur_filepath = $_SERVER['SCRIPT_FILENAME']; // C:/xampp/htdocs/php/gettingstarted/index.php 
    $filepath = str_replace($cur_docroot, '', $current_path); 

    return "http://$cur_root/" . $filepath . "/";  // http://localhost/php/gettingstarted/index1.php 
} 

Répondre

7

Vous devez utiliser un double \ puisque le \ échappe au caractère suivant. :)

$current_path = str_replace('\\', '/', getcwd()); 
+0

oui, j'ai oublié à ce sujet. merci beaucoup – justjoe

1

utilisation \\ en place de \ comme:

$current_path = str_replace('\\', '/', getcwd()); 

\ est utilisé pour échapper à char avec une signification particulière. Maintenant \ lui-même est un char avec une signification spéciale donc échapper avec un autre \ comme \\ pour obtenir un littéral.

+0

salut, merci pour la réponse. désolé je ne vous choisis pas – justjoe

1

C'est PHP string syntax question et vous n'avez pas besoin ce remplacement du tout.

+0

soin d'expliquer pourquoi je n'ai pas besoin de ce remplacement? – justjoe

+0

@justjoe soin d'expliquer pourquoi avez-vous jamais besoin de remplacer si tout fonctionne bien sans remplacement? –

+0

je veux utiliser la base de balise html dans la page que je crée. à partir de la valeur de retour de getcwd(), j'ai le répertoire path puis je vais remplacer la chaîne avec mon $ _SERVER ['DOCUMENT_ROOT'] ... dans le résultat final sera quelque chose comme
http:// localhost/php/gettingstarted/ – justjoe

1
$current_path = str_replace('\\', '/', getcwd()); //c://xampp/htdoc