PDA

View Full Version : سوال: چرا فایل های php جوملا و وردپرس بسته نشده اند؟



kabootar_y
شنبه 11 مهر 1394, 21:33 عصر
با سلام
شاید این مسئله ارزش ایجاد تایپیک نداشت ولی این سوال سه ساله که داره اذیتم میکنه و هر چی سرچ کردم به فارسی و انگلیسی به نتیجه ای نرسیدم

چرا اکثر فایل های php که در جوملا و وردپرس موجود هست با تگ ?> بسته نشده اند؟

نمونه اش فایل index اصلی که در روت جوملا هست

من دارم اسکریپتی رو با php می نویسم گفتم اگه نکته مهمی توش هست منم همین کارو بکنم
اگه اطلاعات دارید ممنون میشم یه توضیح کاملی در موردش بدین

مثلا یه فایل php باید این طوری باشه دیگه:







<?php


کدهای php ...


?>





ولی فایل هایی که میگم بسته نشدن اینطوری؟؟:متفکر:










<?php/** * @package Joomla.Administrator * @copyright Copyright (C) 2005 - 2014 Open Source Matters, Inc. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE.txt */
// Set flag that this is a parent filedefine('_JEXEC', 1);define('DS', DIRECTORY_SEPARATOR);
if (file_exists(dirname(__FILE__) . '/defines.php')) { include_once dirname(__FILE__) . '/defines.php';}
if (!defined('_JDEFINES')) { define('JPATH_BASE', dirname(__FILE__)); require_once JPATH_BASE.'/includes/defines.php';}
require_once JPATH_BASE.'/includes/framework.php';require_once JPATH_BASE.'/includes/helper.php';require_once JPATH_BASE.'/includes/toolbar.php';
// Mark afterLoad in the profiler.JDEBUG ? $_PROFILER->mark('afterLoad') : null;
// Instantiate the application.$app = JFactory::getApplication('administrator');
// Initialise the application.$app->initialise(array( 'language' => $app->getUserState('application.lang')));
// Mark afterIntialise in the profiler.JDEBUG ? $_PROFILER->mark('afterInitialise') : null;
// Route the application.$app->route();
// Mark afterRoute in the profiler.JDEBUG ? $_PROFILER->mark('afterRoute') : null;
// Dispatch the application.$app->dispatch();
// Mark afterDispatch in the profiler.JDEBUG ? $_PROFILER->mark('afterDispatch') : null;
// Render the application.$app->render();
// Mark afterRender in the profiler.JDEBUG ? $_PROFILER->mark('afterRender') : null;
// Return the response.echo $app;

H:Shojaei
شنبه 11 مهر 1394, 22:05 عصر
دلایل اینجا ذکر شده (http://stackoverflow.com/questions/4410704/why-would-one-omit-the-close-tag)

kabootar_y
شنبه 11 مهر 1394, 22:10 عصر
بله دقیقا همینه

اما اگه شما میدونید فارسی حداقل خلاصه اش رو میگفتید چون انگلیسیه و کامل متوجه نمیشم

به هر حال ممنونم

hamedarian2009
شنبه 11 مهر 1394, 22:18 عصر
نه تنها تو جوملا کلا پیشنهاد میشه تو همه برنامه های PHP وقتی که فقط کدهای یک صفحه PHP هستند باید تگ بسته رو از قلم بندازید
دلیلشم به خاطر جلوگیری از ارسال هدر های اتفاقی هست
http://php.net/manual/en/language.basic-syntax.phptags.php