include

Σε αυτή την περιοχή μπορείτε να βρείτε ή να αναζητήσετε πληροφορίες σχετικές με την PHP

Συντονιστές: WebDev Moderators, Super-Moderators, PHP Moderators

Απάντηση
KNBoy
Δημοσιεύσεις: 14
Εγγραφή: 26 Οκτ 2013 02:54

include

Δημοσίευση από KNBoy » 22 Νοέμ 2013 06:12

Καλησπέρα! χρησιμοποιώ για την ιστοσελίδα μου php include έτσι ώστε να μην επαναλαμβάνω τον κώδικα αλλα να τον έχω σε ένα αρχείο. Υπάρχει όμως ένα πρόβλημα! θέλω να κάνω include αρχείο από sub folder και δεν μπορώ! έκανα προσπάθεια στην αρχή να έχω το αρχείο σε φάκελο στο local folder αλλά διαβάζετε μόνο στην αρχική σελίδα.

Πως μπορώ να χρησιμοποιήσω include σε full path;

Για να προλάβω απαντήσεις τύπου βάλε το αρχείο στο local... Δεν θέλω να μαζευτούνε όλα εκεί. Εκεί θέλω να έχω τα βασικά (header footer index). Ευχαριστώ.

Άβαταρ μέλους
dva_dev
Script Master
Δημοσιεύσεις: 3790
Εγγραφή: 16 Σεπ 2005 01:32
Επικοινωνία:

include

Δημοσίευση από dva_dev » 22 Νοέμ 2013 07:54

Αν δεν εννοείς κάτι διαφορετικό, αυτό νομίζω λύνει την απορία σου.

Κώδικας: Επιλογή όλων

Αρχεία:
-------
file1.php
mainInc.php
folder1/
        inc1.php
        inc2.php
        folder2/
                inc3.php
        folder3/
                inc4.php

file1.php
---------
<?php
include&#40;'mainInc.php'&#41;;
include&#40;'folder1/inc1.php'&#41;;
include&#40;'folder1/folder3/inc4.php'&#41;;
...
?>
inc1.php
--------
<?php
include&#40;'folder2/inc3.php'&#41;;
...
?>

KNBoy
Δημοσιεύσεις: 14
Εγγραφή: 26 Οκτ 2013 02:54

include

Δημοσίευση από KNBoy » 22 Νοέμ 2013 08:24

Άκου να δεις:

.gr/page/0001/index.php
.gr/includes/2013.php
.gr/header.php
.gr/footer.php
.gr/index.php

Gia na min xanoume xrono tha ta grapso sta greeklish.

Apo to path .gr/page/0001/index.php exw dilosi include ../../header.php

sto header.php exw kodika gia include ./includes/2013.php

TO PROVLIMA EINAI:

otan eimai stin arxiki selida ton diavazi kanonika (ton kodika)
otan pigeno stin selida page/0001/index.php stamataei na ton diavazi giati apo oso katalaveno prospathi na kanei afto: .gr/page/0001/include/2013.php.

Opote h lisi sto provlima einai full path kai otan vazo full path se include den litourgi.

Euxome na ktlvis ti thelw na po :/

geomagas
Δημοσιεύσεις: 667
Εγγραφή: 06 Απρ 2013 13:36
Τοποθεσία: Ηράκλειο Κρήτης
Επικοινωνία:

include

Δημοσίευση από geomagas » 22 Νοέμ 2013 09:23

KNBoy έγραψε:Gia na min xanoume xrono tha ta grapso sta greeklish.
:question: :think: :question:
KNBoy έγραψε:Apo to path .gr/page/0001/index.php exw dilosi include ../../header.php

sto header.php exw kodika gia include ./includes/2013.php

TO PROVLIMA EINAI:

otan eimai stin arxiki selida ton diavazi kanonika (ton kodika)
otan pigeno stin selida page/0001/index.php stamataei na ton diavazi giati apo oso katalaveno prospathi na kanei afto: .gr/page/0001/include/2013.php.
Σωστά καταλαβαίνεις.
Δες τη σταθερά __DIR__.

KNBoy
Δημοσιεύσεις: 14
Εγγραφή: 26 Οκτ 2013 02:54

include

Δημοσίευση από KNBoy » 22 Νοέμ 2013 09:30

Η αλήθεια είναι πως δεν έχω τις κατάλληλες γνώσεις για να μπορέσω να εκτιμήσω την κατάσταση και να βγάλω την λύση στο πρόβλημα οπότε θα σας παρακαλέσω αν μπορείτε να μου δώσετε την απάντηση γιατί μονος μου δύσκολο να την βρω...

Ναι απλά δεν είμαι καλός στην ορθογραφία για αυτό είπα να μην χάνουμε χρόνο για να μην κάθομαι να σκέφτομαι πως γράφονται :P

KNBoy
Δημοσιεύσεις: 14
Εγγραφή: 26 Οκτ 2013 02:54

include

Δημοσίευση από KNBoy » 22 Νοέμ 2013 09:36

<?php include( $_SERVER['DOCUMENT_ROOT'] . './includes/2013.php' ); ?>

Παιδιά νομίζω όλα εντάξει! το εμφανίζει αλλά θέλω να το δείτε και εσείς μήπως διμιουργή κάποιο άλλο πρόβλημα...

Άβαταρ μέλους
dva_dev
Script Master
Δημοσιεύσεις: 3790
Εγγραφή: 16 Σεπ 2005 01:32
Επικοινωνία:

include

Δημοσίευση από dva_dev » 22 Νοέμ 2013 10:03

Εγώ θα έκανα ένα από τα δύο (ή αν η version της php έχει defined το __DIR__ που ανέφερε και ο geomagas, προτίμησε το 2ο)

Κώδικας: Επιλογή όλων

<?php
include&#40; dirname&#40;__FILE__&#41; . './includes/2013.php' &#41;;
include&#40; __DIR__           . './includes/2013.php' &#41;;
?>
Δες http://php.net/manual/en/language.const ... efined.php

KNBoy
Δημοσιεύσεις: 14
Εγγραφή: 26 Οκτ 2013 02:54

include

Δημοσίευση από KNBoy » 22 Νοέμ 2013 10:07

Επειδή τα αρχεία της σελίδας είναι πολλά και μόλις τώρα τέλειωσα με την αλλαγή αξίζει όντως περισσότερο από αυτό;

<?php include( $_SERVER['DOCUMENT_ROOT'] . './includes/header.php' ); ?>

Γιατί δουλεύει χωρίς κανένα πρόβλημα.

Και γενικά μπορείτε αν σας είναι εύκολο να μου εξηγήσετε της διαφορές τον τριών αυτόν εντολών;

Άβαταρ μέλους
dva_dev
Script Master
Δημοσιεύσεις: 3790
Εγγραφή: 16 Σεπ 2005 01:32
Επικοινωνία:

include

Δημοσίευση από dva_dev » 22 Νοέμ 2013 11:32

'DOCUMENT_ROOT'
The document root directory under which the current script is executing, as defined in the server's configuration file.
__DIR__ The directory of the file. If used inside an include, the directory of the included file is returned. This is equivalent to dirname(__FILE__). This directory name does not have a trailing slash unless it is the root directory. (Added in PHP 5.3.0.)
http://stackoverflow.com/questions/1189 ... n-includes
http://stackoverflow.com/questions/1497 ... eate-error

Πάντως ένα global find & replace του $_SERVER['DOCUMENT_ROOT'] με __DIR__ σου λύνει το πρόβλημα.

KNBoy
Δημοσιεύσεις: 14
Εγγραφή: 26 Οκτ 2013 02:54

include

Δημοσίευση από KNBoy » 22 Νοέμ 2013 12:41

Ευχαριστώ πολύ παιδιά :D

Απάντηση

Επιστροφή στο “PHP Προγραμματισμός”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 1 επισκέπτης