2010-11-13 12 views
0

Je voudrais convertir un chemin absolu en chemin relatif.Pour convertir un chemin absolu en chemin relatif dans php

C'est ce que le code absolu actuel ressemble

$sitefolder = "/wmt/"; 
$adminfolder = "/wmt/admin/"; 

$site_path = $_SERVER["DOCUMENT_ROOT"]."$sitefolder"; 

// $site_path ="//winam/refiller/"; 

$admin_path = $site_path . "$adminfolder"; 

$site_url = "http://".$_SERVER["HTTP_HOST"]."$sitefolder"; 
$admin_url = $site_url . "$adminfolder"; 

$site_images = $site_url."images/"; 

donc par exemple, le code ci-dessus vous donnera une URL du site de

www.temiremi.com/wmt 

et l'accès à un fichier qui donnerait

www.temiremi.com/wmt/folder1.php 

Ce que je veux faire est ce que je veux masquer le temiremi.com/wmt et le remplacer avec dolapo.com, donc il dirait www.dolapo.com/folder1.php

Est-il possible de le faire avec un chemin relatif.

Je suis un codeur débutant. J'ai payé quelqu'un pour faire quelque chose pour moi, mais je veux le faire moi-même maintenant.

+0

Vous ne pouvez pas masquer le domaine, certainement pas avec php. Si vous possédez les deux domaines, hébergez votre site dans l'autre ou pointez l'autre domaine sur le serveur actuel. Ce n'est pas php. –

+0

essayez-vous simplement de changer certaines valeurs dans une page en particulier? Si vous avez l'intention de le faire dans tous les domaines, je commence à penser que j'ai mal compris et que ma réponse n'est pas utile, mais que je la laisse au cas où. L'autre question est "relative" à quoi? Si vous avez temiremi.com/wmt/dir1/file.php, comment savoir si vous voulez tracer la ligne après 'wmt' ou après 'dir1'? –

Répondre

2

Le problème est que votre question, bien qu'elle semble très spécifique, manque certains détails cruciaux.

Si le script que vous avez envoyé toujours en cours d'exécution, et que vous voulez toujours aller à delapo.com au lieu de temiremi.com, tout ce que vous avez à faire est de remplacer

$site_url = "http://".$_SERVER["HTTP_HOST"]."$sitefolder"; 

avec

$site_url = "http://www.delapo.com/$sitefolder"; 

La variable $_SERVER["HTTP_HOST"] renvoie le domaine quel que soit le site demandé. Par conséquent, si l'utilisateur passe à www.temiremi.com/myscript.php (en supposant que le script que vous avez publié est enregistré dans un fichier appelé myscript.php), alors $_SERVER["HTTP_HOST"] renvoie simplement www.temiremi.com. Par contre, il est possible que vous ne redirigiez pas toujours vers le même domaine ou que vous souhaitiez que le script puisse facilement s'adapter à différents domaines sans avoir à parcourir les couches de code à l'avenir. Si c'est le cas, vous aurez besoin d'un moyen de déterminer quel domaine vous souhaitez lier.

Si vous avez un site Web hébergé sur temiremi.com mais que vous voulez qu'il ressemble à un accès depuis delapo.com, ce n'est pas un problème qui peut être résolu par PHP. Vous devez avoir delapo.com rediriger vers temiremi.com ou simplement héberger sur delapo.com en premier lieu. Si la situation est inverse et que vous voulez un site Web hébergé sur delapo.com mais que vous voulez que les utilisateurs accèdent à temiremi.com, il suffit simplement de réécrire des liens. Cette stratégie redirigeait l'utilisateur vers l'autre domaine lorsqu'il cliquait sur le lien. Au lieu de cela, vous devez avoir un proxy mis en place pour transmettre les informations. scripts proxy varient en complexité, mais la plus simple serait quelque chose comme:

<?php 
    $site = file_get_contents("http://www.delapo.com/$sitefolder"); 
    echo $site; 
?> 

Donc, vous voyez, nous avons vraiment besoin d'un peu plus d'informations sur pourquoi vous avez besoin de ce script et sa destination afin de vous aider .

+0

SeFunmni: Je suis un peu confus. Donc maintenant vous avez un site web hébergé sur kroesbergens.com, qui peut être consulté via temiremi.com (ie les deux domaines pointent vers le même hôte). De plus, vous avez redirigé dolapo.com vers temiremi.com. Ma question est: où et pourquoi générez-vous ce chemin absolu? Avez-vous un lien '' qui pointe dessus? Ou essayez-vous d'afficher le contenu de l'autre site sans changer ce que l'utilisateur voit dans sa barre d'URL? (En passant, ce n'est pas recommandé pour des raisons de référencement) – stevendesu

0

Cela serait beaucoup plus facile à faire dans la configuration du serveur HTTP. Par exemple, en utilisant

+0

Je vais essayer cette option aussi. Je demande à mon ami de mettre ça en place. Je vous ferai savoir comment cela fonctionne. –

0

Je ne suis pas vraiment sûr de ce que vous allez pour bc cela ne ressemble pas à un chemin absolu vers le chemin relatif, mais plutôt un chemin absolu à un autre.

Etes-vous toujours en train d'essayer de simplement remplacer "www.temiremi.com/wmt/" par "delapo.com"? Si c'est le cas, vous voulez juste un remplacement de chaîne simple plutôt que des variables $ _SERVER ou des fonctions de chemin.

$alteredPath = str_replace("www.temiremi.com/wmt/", "delapo.com", $oldPath); 
OR 
$alteredParth "www.delapo.com/" . basename($oldPath) 

Si je comprends mal s'il vous plaît expliquer, je ne sais pas si vous en avez besoin d'être plus robuste/générique, et vous me genre de jeté pour une boucle avec « dolapo.com » (quand j'ai pensé votre titre, je pensais à l'origine de comparer chemin à une valeur de $ _SERVER et en supprimant les parties communes,)

Et comme mentionné, si vous essayez simplement de rendre l'URL affichée l'utilisateur (dans la barre d'adresse ou les liens) PHP différent ne peut pas faire cela.

+0

Oui, le remplacement de la chaîne, je pense que c'est la meilleure option. Mais cela apparaîtrait-il dans la barre d'adresse? Comme si je voulais remplacer temiremi.com/wmt par delapo.com uniquement. C'est tout ce que je veux faire. Et assurez-vous qu'il s'affiche dans la barre d'adresse (afin qu'il devienne signable, c'est-à-dire qu'il soit appelable). –

+0

Si la page est vraiment à delapo.com, utilisez header() pour y accéder. si ce n'est pas, alors vous ne pouvez pas "tromper" la barre d'adresse comme ça avec PHP –

Questions connexes