Newsgroup: it.comp.www.php
Titolo: incorporare immagine in pagina web

apparentemente è molto semplice; basta ad esempio:
 
- creare una directory (/testimg)
- copiarci dentro il file immagine (img.jpg)
- creare nella stessa directory il file php (index.php)
 
<?php // "/testimg/index.php"
echo '<img src=img.jpg>';
?>
 
A questo punto, per visualizzare il tutto, basta aprire il proprio 
browser e digitare: 
http://miosito/testimg/index.php
 
 
Adesso invece voglio incorporare il file 'index.php' all'interno di un 
altro file.
Tale file si chiama sempre 'index.php', ma si trova in un altra cartella 
(/testimg2), e contiene naturalmente il seguente codice:
 
<?php // "/testimg2/index.php"
include dirname(__FILE__) . '/../testimg/index.php';
?>
 
Andiamo quindi ad aprirlo nel browser: 
http://miosito/testimg2/index.php
 
 
L'immagine purtroppo non appare, perchè naturalmente la directory 
specificata nell'url (testimg2) è diversa da quella originale (testimg).
 
Avrei quindi pensato di modificare il file iniziale 
(/testimg/index.php), in questo modo:
 
<?php // "/testimg/index.php"
echo '<img>';
include dirname(__FILE__) . '/img.jpg';
echo '</img>';
?>
 
cioè incorporare l'immagine direttamente tra i tag "img", ma a quanto 
vedo l'html non prevede l'uso di questa pratica (si vede il contenuto 
binario del file jpg, ma non l'immagine).
 
C'è un modo per aggirare il problema?

 include dirname(__FILE__) . '/img.jpg'; echo '</img>';
 
Qui ti sei inventato HTML che non esiste.
La sintassi e` <img src="url al file" />
 
Inoltre confondi il path del file (la sua posizione nel disco del server) 
con l'url del file (il suo indirizzo web).
 
Al browser non interessa il path sul server, lui conosce solo URL.
 
Di solito si risolve specificando a mano i path relativi (quindi senza 
include) o facendo uno script di "bootstrap" nella root del sito che 
calcola l'URL.
 
A occhio e croce credo che per te la seconda opzione sia ancora 
prematura. Continua a studiare il linguaggio, soprattutto le variabili 
superglobal, e inizia a vedere la programmazione a oggetti, che ti 
servira` per capire come i framework fanno questo tipo di lavoro (e anche 
a organizzare meglio il tuo lavoro).
 
Bye.

 Bye.
 
il problema è che vorrei anche che il mio sito funzionasse sia
in locale: 
http://localhost/azienda/test/siti/miosito
 
che in remoto: 
http://www.miosito.it
 
 
senza creare file di bootstrap specifici per entrambi gli "ambienti" 
(unica configurazione dinamica, anche per agevolare la portabilità 
dell'intero sito da un pc all'altro)

 che in remoto: 
http://www.miosito.it
 
 
Non dovrebbe essere affatto un "problema" (lo facciamo tutti), l'unico 
accorgimento da tenere è non usare troppi include e progettare bene la 
struttura delle cartelle del sito.
IMHO è sbagliato concettualmente avere un php nella stessa cartella di 
un img, che poi viene incluso in un altro php.
Prova a ripensare alla struttura delle cartelle e vedere se puoi mettere 
gli script in una cartella e le immagini in un'altra, in modo da non 
avere questo tipo di problemi.
La portabilità è garantita (e molto più semplice) solo quando usi path 
relativi. L'uso di path assoluti e superglobali, IMHO, dev'essere 
un'eccezione.
 
-- 
Jax