php include vs bibliotecă; cale corectă

Am încercat să investighez ce este mai bine să utilizez pentru a include părți repetate ale site-ului - funcția PHP include sau bibliotecă (furnizată în Dreamweaver).

Sau poate există și alte modalități mai bune de a obține același rezultat?

În prezent, folosesc PHP și căi absolute. Am descărcat site-ul de pe server, dar se pare că căile care funcționează pe server nu funcționează pe localhost. Care ar fi corectul și cel mai bun mod de a scrie căi pentru a le face să lucreze pe ambele servere fără a trebui să re-scrie codul?

Mulțumiri

0
Nu știu ce face Biblioteca Dreamweaver, dar dacă nu face altceva decât include() piese de cod, este greșit :) Utilizarea include este o modalitate foarte bună de a merge și dacă dvs. includ fișierele cresc, poate căutați în OOP și autoloading.
adăugat autor Pekka 웃, sursa

4 răspunsuri

Puteți să apelați la începutul scriptului comanda set_include_path() și să specificați căile relative la bibliotecile dvs.

http://www.php.net/set_include_path

1
adăugat

Deoarece țesătorul de vis folosește biblioteca, probabil că este greșit;)

Dacă doriți să vă asigurați că codul este inclus numai odată ce ați putea folosi require_once .

Încercați căi relative în loc de absolut

0
adăugat

De asemenea, o modalitate ușoară de a rezolva această problemă este definirea unei constante din interiorul rădăcină, în mod normal în fișierul index.php.

/**Path Environment**/
$root=pathinfo($_SERVER['SCRIPT_FILENAME']);
define ('BASE_FOLDER', basename($root['dirname']));   
define ('SITE_ROOT',    realpath(dirname(__FILE__)));
define ('SITE_URL',    'http://'.$_SERVER['HTTP_HOST'].'/'.BASE_FOLDER); 

Apoi, puteți utiliza SITE_URL și SITE_ROOT în întregul script, știind că este calea corectă spre rădăcina web.

Deci vechiul tău include:

includ ( '/ srv/www/somesite.com/public_html/somefile.php');

și noua dvs. include va arăta ca include (SITE_ROOT. '/ somefile.php'); atunci atunci când se dezvoltă pe ferestre calea se va schimba în consecință.

0
adăugat

A pune

include_path = ".:/your/absolute/path"

în php.ini, ambele medii Server și localhost. Apoi puteți accesa fișierul de cale inclusă oriunde în coduri.

0
adăugat
PHP România, Moldova
PHP România, Moldova
173 participanți

Vorbim despre Yii, Laravel, Symphony, MySQL, PgSQL, WP, OpenCart... Pentru confort, opriți notificările. Parteneri: https://ciupacabra.com @js_ro @node_ro @python_ro @seo_ro @Romania_Bot Offtop: @holywars_ro Joburi: @php_job @Grupuri_IT