Full URL not working with php include

我的未来我决定 提交于 2019-12-28 07:02:08

问题


So, I am trying to insert a file with a php include, but for some reason it doesn't work with the full URL.

This works:

<?php include 'menu.html' ?>

But this does not:

<?php include 'http://domainname.com/menu.html' ?>

Any ideas?


回答1:


check php.ini -

allow_url_include

but I have to say, if you don't have really really good reason, please don't use it. It's one of the worst php weaknesses, serious security threat.




回答2:


Does your php.ini allow you to use remote files with include?

If it's on your own domain then it makes no sense to require the absolute URL, as this would cause the server to open a connection to itself to retrieve the file via HTTP when a direct file operation would be so much simpler.




回答3:


include is meant to include and evaluate a specified PHP file. If you fetch it locally, it can be processed like PHP - if you fetch it through a full URL, you will get the resulting HTML (in theory ... you may get only an error).

Supporting Docs

include 'menu.php' //Internally process a PHP file to generate HTML

or

file_get_contents('http://domainname.com/menu.php'); //Fetch resutling HTML



回答4:


An include tag is meant to be used to reference other PHP script files. If it is not a script that you are going to be processing, you might want to look into using:

$FileContents = file_get_contents("http://www.domainname.com/menu.html");



回答5:


Don't use absolute urls. Instead, try linking from the root directory. Like this:

$path = $_SERVER['DOCUMENT_ROOT']."/layer1/layer2/layer3/";
include($path."file.php");



回答6:


Sounds like allow_url_fopen or allow_url_include or both have been set to 0 (disabled) in php.ini.

HTML should't be included in a PHP script, though. Other answers seem to address that issue as well.



来源:https://stackoverflow.com/questions/13369529/full-url-not-working-with-php-include

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!