include e path relativo

marco_tv

Nuovo Utente
12 Apr 2010
4
0
0
Buongiorno,

sto utilizzando la funzione include
include('CartellaFileHtmlDaIncludere/prova.html');

il file prova.html viene incluso correttamente o meglio il testo è visibile ma le immagini a cui fa riferimento il file prova.html no.
il file html contiene ad esempio questa immagine (tag html):
<img src="sottocartella/prova.gif">
l'immagine si trova quindi nella cartella CartellaFileHtmlDaIncludere/sottocartella

come posso risolvere questo problema? in teoria dovrei "dire" all'interprete php che i riferimenti contenuti nel file html da includere partono dalla stessa cartella del file html stesso
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
il problama probabilmente risiede nel fatto che tu richiami le immagini dalla prova.html.

se nella pagina pinco.php fai l'include la pagina prova.html diventa non una pagina a se stante ma parte della pagina pinco.php

quindi il percorso per le immagini deve fare riferimento non alla posizione di prova ma a quella di pinco.
spero di essermi spiegato bene
 

marco_tv

Nuovo Utente
12 Apr 2010
4
0
0
ciao
il problama probabilmente risiede nel fatto che tu richiami le immagini dalla prova.html.

se nella pagina pinco.php fai l'include la pagina prova.html diventa non una pagina a se stante ma parte della pagina pinco.php

quindi il percorso per le immagini deve fare riferimento non alla posizione di prova ma a quella di pinco.
spero di essermi spiegato bene

si si è questo il problema, ma volevo sapere se è possibile risolverlo lato php. Ho centinaia di migliaia di file html da includere e non posso modificarli in nessun modo ne spostarli. Dovrei trovare una soluzione lato php
 

amikoseo

Nuovo Utente
12 Apr 2010
3
0
0
Dopo vari dubbi e qualche battaglia in cui ho visto script che tenevano presente il livello della cartella usando una numerazione del sottolivello della cartella e relativo codice interno , mi sono chiesto se sarebbe così brutto usare il link assoluto.
Io per un po' l'ho usato, anche se scomodo da digitare tutte le volte, ma poi casualmente ho visto che facendo iniziare il source con la / diventa tutto ancora più semplice. Non so come ma in anni di guide web non avevo mai trovato riferimenti al fatto che iniziare un src con la / porta automaticamente a far partire il percorso dalla root...
Per me è un sistema comodissimo in questi casi!
Qualcuno sa di problemi per cui non sia consigliabile usarlo? Io negli include da un anno a sta parte lo uso sempre e non ho riscontrato problemi e credo sia vivamente consigliabile.
Per capirci
Codice:
<img src="/cartella1/pippo.jpg" />
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
...credo sia vivamente consigliabile...
ma questo era proprio quello che marco_tv voleva (cercare di) evitare (così ho capito) cioè andare a riscrivere tutti i tag <img.....> nei file html.

anche se, ma può darsi che sbagli, credo proprio che sia quello che dovrà fare.
forse l'unica se i file html sono tutti nella stessa cartella mettere la pagina.php che include nella cartella medesima
 

amikoseo

Nuovo Utente
12 Apr 2010
3
0
0
Scusa, ma da come ha scritto credo che indubbiamente tu abbia ragione visto che parla di evitare di modificare centinaia di include , pero' mi sembrava strano che avesse questo problema su tanti include , visto che l'obiettivo dell' include è proprio evitare di avere centinaia di modifiche a codice simile, e in genere nei cms ( tanti include non credo li abbia fatti lui ) la soluzione è già risolta tramite l'uso di funzioni specifiche per l'output html dei vari tag img o ancora e così ho scirtto per evitare che si finisse ad andare avanti con una possibile incomprensione per vari post...
Comunque scusa l'intromissione, ero qui per risolvere un mio problema e sono capitato su questo thread dove mi sembrava di trovare un problema che avevo avuto anch'io storicamente così ho provato a partecipare...
Per il mio problema apro un altro thread ( se possibile. Visto che sono nuovo, non so... ).
Buon lavoro a tutti .
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
il problema (da come ho capito) non sta negli include da modificare, ma in quella riga contenuta nei files.html
<img src="sottocartella/prova.gif">
cioè nel richiamo dell'immagine, è quella riga , che una volta inclusa, fa sballare il percorso e quindi l'immagine non viene trovata
 

marco_tv

Nuovo Utente
12 Apr 2010
4
0
0
ciao
il problema (da come ho capito) non sta negli include da modificare, ma in quella riga contenuta nei files.html
<img src="sottocartella/prova.gif">
cioè nel richiamo dell'immagine, è quella riga , che una volta inclusa, fa sballare il percorso e quindi l'immagine non viene trovata

Il problema è proprio questo. Ho piu di centomila file html (è uno shop on line, uno per ogni prodotto) che se li apro direttamente dal browser vengono visualizzati correttamente ma se vi faccio riferimento da un include ho il problema del path delle immagini . La riga con la funzione include è unica nel sorgente php (il nome del file è una variabile). Pensavo esistesse qualche variabile di sistema da impostare che mi salvasse la vita, ma da quello che mi dite il mio problema non si puo risolvere via php
 

amikoseo

Nuovo Utente
12 Apr 2010
3
0
0
ok ho capito, immaginavo fosse un sito minore.
In un eshop , immagino basato su un cms, dovrebbe esserci una funzione apposta tipo tep_img() di oscommerce o qualcosa di simile... Ma vedendo che mi parli di file html immagino che la cosa non funzioni ...
Chiaro che su una mole di file del genere, immagino una struttura piuttosto diversificata per poter dare consigli, comunque provo a dare il là ad un brainsotrming , chissà che non porti a qualcosa :-D
-> se hai tutte le immagini prodotti nella stessa cartella, e magari anche gli include tutti nella stessa cartella batserebbe il classico trova e sostituisci che in dreamweaver funziona così bene :-D
-> Potresti fare la stessa cosa tramite php sostituento in fase di stampa dell' html incluso una funzione di sostituzione della parte src=" con src="/
-> usando le espressioni regolari sia la prima che la seconda soluzione sarebbero sicuramente migliorabili.
-> potresti mettere una controllo if file_exist($file) , dove $file lo trovi creando uno script che dal file incluso (immagino come stringa ) che cerca il file a partire dal suo nome che l'html ti da, nelle singole sotto cartelle possibili, a partire dalla root, tanto immagino sia o root o images...

Vabbè su un catalogo così ampio forse non è cosa per me ( ammetto i miei limiti ) soprattutto senza vederlo.
Visto che tentar non nuoce io ci ho provato con un brainstorming, magari da cosa nasce cosa ( con le donne funziona ) ...

In bocca al lupo.
 

programmatore

Utente Attivo
21 Ago 2009
111
0
0
programmatore.altervista.org
Ti abozzo una soluzione per sapere se risolve il tuo problema, poi vediamo i dettagli se ti servono maggiori informazioni.
Per includere il file "dir/file.html", puoi anche:
- leggere il file dir/file.html (usando file_get_contents)
- cambiare la directory di tutti i link a immagini aggiungendo il path del file html aperto (usando una regex con ereg_replace)
- restituire il contenuto del file html come se avessi fatto l'include (usando un echo)
Suppongo che la dir del file html la conosci già (altrimenti non potresti fare l'include).
 

marco_tv

Nuovo Utente
12 Apr 2010
4
0
0
Grazie a tutti, veramente molto preparati

Ho seguito i vostri consigli ed in particolare quelli di Programmatore
 
Discussioni simili
Autore Titolo Forum Risposte Data
S Differenza tra le funzioni include () e require ()? PHP 1
tucu49 PHP include classe PHP 8
G [PHP][RISOLTO] Include/Require non funzionante PHP 9
T #include virtual="/controlla.asp" Classic ASP 1
B sitoweb responsivo problema con include php HTML e CSS 1
G Problema php include PHP 8
elpirata Strano problema con include PHP 5
C Include PHP e Javascript PHP 4
L Refresh include php con jquery problemi negli script dopo load jQuery 2
X Problema con header() include() e i siti di hosting PHP 1
M Errore di header se metto include al posto delle istruzioni PHP 2
V Funzione "include" PHP 4
filomeni include in php SEO e Posizionamento 3
berry94mf Problema con include e css PHP 1
P Include o Require al posto di iframe... PHP 4
C Include php PHP 4
S include(URL) o require(url) PHP 4
L Problema include ed errore server rate limit.... PHP 0
C problema con l'include PHP 1
G funzione include di php e paramentri variabili PHP 4
G comando include PHP 6
L problema include ? PHP 4
R include() mi funziona solo nella root PHP 0
Jonn Strutturazione di sito web con Include PHP PHP 2
Jonn Elencare più file TXT di una Directory con Include PHP 2
asevenx domanda su include e iframe PHP 3
A [php]Include PHP 12
Neptune7650 Piccolo problema con la funzione include PHP 1
neo996sps Passare variabile su include di file php PHP 2
novello88 Differenza tra include() e require() PHP 18
borgo italia dubbio sul require/include PHP 2
V Include con URL personalizzati PHP 5
Z FWRITE con INCLUDE PHP 2
M include php, come fare? PHP 11
A include da file txt PHP 2
D include e flash PHP 11
Z include di php e html PHP 1
Apeweb Aggiornare un sito senza include dinamici CMS (Content Management System) 3
catellostefano include in sub directory PHP 13
catellostefano include(); PHP 15
F Virtual Include e QueryString Classic ASP 1
P Box form che include codice php PHP 0
S login con include PHP 0
D include di directory e nome variabili in automatico PHP 2
J include asp Classic ASP 3
M function include() PHP 3
L uso di include PHP 3
D Include PHp PHP 11
borgo italia errore per include PHP 5
borgo italia include e get? PHP 2

Discussioni simili