2015-08-18 175 views
1

我们运行一个主要网站,它是在Laravel制作的而不是。然而,本网站上的特定脚本是在Laravel中制作的。我们需要这个脚本(或者确切的说,它的一个特定视图)从主网站(主要包含HTML的PHP​​文件)获取一些资源。在Laravel应用程序中,当我们尝试包含这些资源时,我们不能 - 因为它们不在Laravel项目工作区中。这会导致文件不存在的错误。试图爬出项目(../../../file.php)似乎也没有帮助。外部PHP包含在Laravel中

我们包括这样说:

<?php 
    include '~/template/nav.php'; 
?> 

我们不希望包含此文件到实际的Laravel项目,因为这需要有更新两次,以确保它们保持相等。在我们看来,有没有办法让我们包含这个“外部”文件?所做的每一项研究似乎都表明将其添加到项目中,这只会导致更新管理量的两倍。

干杯!

+0

您是否尝试过在laravel的公共文件夹中创建符号链接,并将include符号链接与public_path('nav.php'); – baao

+0

@ michael我没有。我想这会工作 - 但我仍然好奇我们是否可以包含外部文件。 – CmdrSharp

+0

除非在php.ini中设置open_basedir以允许php访问文档根之外的文件,否则不能包含非项目文件,即使在非laravel项目中也是如此。你可以用同样的方法用你的laravel来做到这一点,但是你必须提供完整的路径名,从你的服务器根目录开始。/var/www/html/...例如 – baao

回答

-3

显然这是不可能的 - 所以需要复制文件才能使其正常工作。

0

刚刚面临同样的问题。我的Laravel项目是一个需要包含外部php文件的API。所以我所做的是指定整个路径:

include($ _ SERVER ['DOCUMENT_ROOT']。'/ ../../my_example_file.php');

$ _SERVER ['DOCUMENT_ROOT']会将您引导至Laravel的公用文件夹。