2016-04-03 1 views
2

j'ai une fonction qui vérifie l'existence de CSS/JS ... fichier, puis il retourne toute <script> ou <link> tag etc.
avant son retour, il vérifie l'existence de ce fichier file_exists() par chemin absolu.
Après cela, je voudrais obtenir l'URL absolue de ce fichier, pour charger même si la demande est comme domain.com/abc/def. Est-il possible de le faire fonctionner partout (les demandes sont toutes envoyées à index.php)?Get Absolute URL à partir du fichier chemin absolu en PHP

J'ai été inspiré par Wordpress "en attente", mais WP a l'URL enregistrée dans la base de données, ce que je ne veux pas.

Je vous remercie de toute aide

+0

Vous connaissez le chemin d'accès racine pour le site Web, vous n'avez donc qu'à le couper du début et vous avez un chemin absolu pour l'URL. –

+0

Si les fichiers se trouvent dans le même système de fichiers, avez-vous essayé de traduire le chemin absolu en relatif en utilisant la fonction realpath? –

+0

Vous pouvez utiliser 'string_replase ($ basePath, $ domen, $ filePath)' où $ basePath par exemple/var/www/project/et $ domen vous bseUrl par exemple example.çom et etc. – Naumov

Répondre

0

Avec votre aide, je suis venu à la solution; J'ai réalisé que toutes les demandes sont redirigées vers index.php (si ce n'est pas un fichier), donc je peux utiliser DOCUMENT_ROOT. J'ai juste besoin de réparer \ de Windows chemin, couse ussing WAMP. J'ai ajouté le protocole et l'URL était complète

/** 
     * Returns absolute URL of given path 
     * @param type $path 
     * @return type 
     */ 
     function absuri($path){ 
//for Windows servers (at the moment I use WAMP, i have Debian on my computer) 
     $path = str_replace('\\', '/', $path); 
     return ((isset($_SERVER['HTTPS'])) ? 'https://' : 'http://' ) . str_replace($_SERVER['DOCUMENT_ROOT'] , $_SERVER['SERVER_NAME'] . '/' , $path); 
    }