include کردن فایل در PHP
درج کردن یک فایل PHP در یک فایل PHP دیگر
شما می توانید با استفاده از دو تابع include یا require محتویات یک فایل PHP را داخل یک فایل PHP دیگر درج کنید، البته قبل از اینکه فایل دوم اجرا شود.
این دو تابع در همه موارد یکسان عمل می کنند، بجز در چگونگی برخورد با خطا:
- include: پیغام خطا را تولید می کند، اما ادامه اسکریپت اجرا خواهد شد.
- require: پیغام خطا را تولید می کند و اجرای اسکریپت متوقف خواهد شد.
موارد استفاده دو تابع include و require می تواند شامل موارد زیر باشد:
- توابع
- Header
- Footer
- المانهایی که در چندین صفحه استفاده می شود مانند منوها، کامپوننت تاریخ و ...
شما می توانید یک فایل استاندارد Header یا Footer و یا منو ایجاد کنید و در همه صفحات پروژه تان از آنها استفاده کنید، و موقعی که نیاز به تغییر داشت، تنها با تغییر یک فایل، کل پروژه تان را تازه سازی کنید.
دستور include_once و require_once:
دو تابع بالا دقیقاً مثل include و require عمل می کنند، با این تفاوت که اگر فایل مورد نظر قبلاً خوانده شده است، دیگر خوانده نمی شود.
مثال 1:
فرض کنید یک فایل Header با نام "header.php" دارید، برای اضافه کردن آن به صفحه ای از پروژه از کد زیر استفاده کنید:
<html>
<body>
<?php include("header.php"); ?>
<h1>Welcome to my home page!</h1>
<p>Some text.</p>
</body>
</html>
دستورات include, include_once, require و require_once را می توان بدون پرانتز نیز بکار برد.
مثال 2:
فرض کنید یک فایل منو طبق زیر با نام "menu.php" داریم، که باید به تمام صفحات پروژه اضافه شود:
<a href="/default.php">Home</a>
<a href="/tutorials.php">Tutorials</a>
<a href="/references.php">References</a>
<a href="/examples.php">Examples</a>
<a href="/about.php">About Us</a>
<a href="/contact.php">Contact Us</a>
در زیر فایل "menu.php" را به صفحه دلخواهمان اضافه کرده ایم:
<html>
<body>
<div class="leftmenu">
<?php include("menu.php"); ?>
</div>
<h1>Welcome to my home page.</h1>
<p>Some text.</p>
</body>
</html>
اگر بعد از اجرای فایل بالا در IE ، روی صفحه راست کلیک کرده و View Source را کلیک کنید، کد html شبیه زیر خواهیم داشت:
<html>
<body>
<div class"leftmenu">
<a href="/default.php">Home</a>
<a href="/tutorials.php">Tutorials</a>
<a href="/references.php">References</a>
<a href="/examples.php">Examples</a>
<a href="/about.php">About Us</a>
<a href="/contact.php">Contact Us</a>
</div>
<h1>Welcome to my home page!</h1>
<p>Some text.</p>
</body>
</html>
مثال 3: خطا در تابع include:
در مثال زیر فایل wrongFile.php وجود ندارد و همان طور که مشاهده می کنید بعد از چاپ پیغام خطا ادامه اسکریپت اجرا می شود.
<html>
<body>
<?php
include("wrongFile.php");
echo "Hello World!";
?>
</body>
</html>
پیغام خطا:
Warning: include(wrongFile.php) [function.include]:
failed to open stream:
No such file or directory in C:\home\website\test.php on line 5
Warning: include() [function.include]:
Failed opening 'wrongFile.php' for inclusion
(include_path='.;C:\php5\pear')
in C:\home\website\test.php on line 5
Hello World!
مثال 4:پیغام خطا در تابع require:
<html>
<body>
<?php
require("wrongFile.php");
echo "Hello World!";
?>
</body>
</html>
پیغام خطا:
Warning: require(wrongFile.php) [function.require]:
failed to open stream:
No such file or directory in C:\home\website\test.php on line 5
Fatal error: require() [function.require]:
Failed opening required 'wrongFile.php'
(include_path='.;C:\php5\pear')
in C:\home\website\test.php on line 5
بعد از ایجاد خطا، ادامه اجرای اسکریپتمتوقف می شود، و در حقیقت خطی که قرار است Hello World را چاپ کند، اجرا نمی شود.
پیشنهاد می شود از تابع require بجای include استفاده شود، چون اسکریپت ها بعد از برخورد با خطا نباید ادامه پیدا کنند.
برای مشاهده فیلم ها و آموزش های پروژه محور برنامه نویسی PHP کلیک کنید.
- نوشته شده توسط امیر پهلوان صادق
- بازدید: 25439
دیدگاهها
1- برای اینکه از نوشتن قسمت های تکراری جلوگیری کنیم؛باید قسمت های تکراری رو در یک فایل php دیگر درست کنیم و هر موقع که نیاز داشتیم آنها رو include کنیم؛درسته؟
2- توی کلاینت ساید چطور میشه اینکارو کرد که از نوشتن قسمت های تکراری جلوگیری شود ؛اونجا که زبان سرور ساید نداریم؟!
3- میشه درمورد مستر پیج هم کمی توضیح دهید
1- بله درسته ...
2- توجه داشته باشید که کدهای سمت کلاینت، توسط سرور تولید شده است و در واقع قبل از اینکه کدها به کاربر ارسال شود، دستوراتی مثل include ترجمه شده و به قول شما قسمت های تکراری مثل Header و Footer و یا منوها به صفحه جاری اضافه گردیده است.
3- در پروژه زیر بیشتر در مورد MasterPage فراخواهید گرفت:
beyamooz.com/product/php-hotel/%D9%BE%D8%B1%D9%88%DA%98%D9%87-%D8%B1%D8%B2%D8%B1%D9%88-%D9%87%D8%AA%D9%84-%D8%AF%D8%B1-php
1- آیا در PHP میشود بجای اینکه تمام قسمت های سایت با include ساخته شوند یک کار دیگر کرد، یک صفحه درست کاملاًٌ ثابت برای تمام صفحات درست کرد و بخش متغییر آن صفحه را با Include تغییر داد. آیا اینطوری بهتر نیست؟!
2- آیا بجای include میتوانیم از عنصر Ifrme استفاده کنیم؟
1- این مفهوم MasterPage است و انجام این کار توصیه می شود.
2- خیر ...! کاربرد Iframe از زمین تا آسمان با include فرق دارد. در واقع از iframe برای لود کردن یک صفحه از یک سایت دیگر در سایت اصلی استفاده می شود.
ba tashakor az site kheili khubetun
khaheshan matalebe gofte shode dar site w3schools ro betore kamel tarjome konid
masalan multi array tuye bakhshe advance tajome nashode
ba tashakkor.
ممنون ... آرایه های چند بعدی (Multidimension al array) در قسمت "آموزش مقدماتی- آرایه ها" توضیح داده شده است: www.beyamooz.com/php/80-basic/67