所以,我有一个小脚本从数据库中获取一些信息。 它基本上需要做的是包括在&miescudo.php'中生成的svg。
$sql = "SELECT u.id, u.id_facebook, t.*
FROM user_facebook u
LEFT JOIN user_team t ON u.id = t.id_user
WHERE u.id_facebook='100003809660283'";
$result = mysql_query($sql) or die (mysql_error());
while($row = mysql_fetch_array($result)){
echo '<div>'.include('miescudo.php').'</div>';
}
我收到以下错误消息:
Warning: include(miescudo.php?id=1
): failed to open stream: No such file or directory in full-path-goes-here/tusequipos.php on line 56 Warning: include(): Failed opening 'miescudo.php?id=1
但是,当我以相同的方式包含文件但在我的while循环之外它可以正常工作。
我认为以下是造成此错误的原因,但我还没弄清楚如何修复它:
// Won't work; looks for a file named 'file.php?foo=1&bar=2' on the
// local filesystem.
任何帮助和建议都很受欢迎。
哦,我不需要任何关于不使用已弃用的mysql_ *函数的提醒。我很清楚并会相应地更新这段代码 - 我保证!
答案 0 :(得分:3)
include
无法理解非绝对网址。 NOT 执行http请求,除非您作为参数传入的字符串是一个完整的URL,这意味着包含协议:
include('http://example.com/path/to/script.php'); // does an HTTP request
include('/path/to/script.php'); // local request only
include('http://example.com/script.php?foo=bar'); // does an HTTP request
include('script.php?foo=bar'); // local request only, will look for a "...?foo=bar" file
除非HTTP请求完成,否则您的查询参数将被视为文件名的一部分。所以PHP不会查找script.php
并传入foo=bar
。它会查找名称字面为script.php?foo=bar
的文件。
答案 1 :(得分:2)
您不能包含具有GET参数的文件,因为不会注意到GET参数。您必须通过HTTP协议读取输出(如果启用了allow_url_fopen,您可以只使用file_get_contents()),或者如果包含脚本,则可以简单地使用该变量(可能需要将其声明为全局)。并记住使用绝对文件路径。