Salve è da un pò di tempo che vorrei capirci qualcosa ma non riesco a venirne a capo:
creare percorsi assoluti dinamici.
poniamo (ad esempio!!) che il mio script sia il seguente
file: config.php
Codice PHP:
<?php
include("cartella/file.php");
include("cartella2/file.php");
echo "[img]image/test.png[/img]";
?>
ora in un qualsiasi altra cartella di un mio ipotetico sito vorrei includere tale file e i percorsi degli include in esso contenuti devono modificarsi dinamicamente.
seguendo la pillola di daniele_dll ho partorito quanto segue:
Codice PHP:
<?php
/*ottengo il percorso fino al presente file (con i backslash!! e partendo dalla cartella generale!!)*/
$percorso = dirname(__FILE__);
/*capovolgo gli slash (ma che differenza c'è nel percorso con gli slash capovolti??! bhò!)*/
//sul forum mi si elimina un backslash ma nel primo parametro ce ne sono 2
$percorso = str_replace("\\", '/', $percorso);
/*elimino il percorso fino alla root del sito così da ottenere il percorso per fare i link o gli src delle img*/
$percorso_link = str_replace($_SERVER['DOCUMENT_ROOT'], '', $percorso);
/*$percorso conterrà il percorso fino alla cartella in cui si trova il presente file*/
/*quindi posso fare include dinamici o link dinamici che dovranno partire sempre dal presente file*/
include($percorso."/cartella/file.php");
include($percorso."/cartella2/file.php");
echo "[img]".$percorso_link."/image/test.png[/img]";
?>
Domande e dubbi :
- opero in modo corretto?
- ci sono differenze tra server linux e windows: se sì quali? (ho letto qualcosina ma nn ho ben capito)
- nella pillola di daniene_dll vi è questa riga di codice che non ho ben capito:
Codice PHP:
substr($_SERVER['DOCUMENT_ROOT'], -1,1) == '/' ? $_SERVER['HTTP_HOST'] . '/' :$_SERVER['HTTP_HOST'])