我知道有很多关于这个的帖子,但是没有一个看起来有用。
我试过输入
include_path=".:/path/to/dir"
随着
safe_mode_exec_dir=".:/path/to/dir"
进入php.ini。我试过打开safe_模式,打开allow_url_fopen,然后将ftp://放在路径前面,而不使用ftp://。我试过用多种不同的方法打开它,包括。。。
$folder = $_GET['dir'];
$path = $folder;
$file = fopen($path, 'r');
$lines = array();
while(!feof($file)){
$lines[] = fgets($file);
}
fclose($file);
和
$lines = explode("\n", file_get_contents('doc.txt'));
我已尝试在/var/www/html下将权限设置为777,并在/home/pi下的另一个目录上设置权限/
似乎什么都没用。
所以。我完全没有主意了。在我的头部撞击变得危险之前请帮忙。
这是我要做的事情的代码。。。
<?php
header('Content-Type: text/xml');
echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
echo '<response>';
$folder = $_GET['dir'];
$path = $folder."/myfile.txt";
$file = fopen($path, 'r');
$lines = array();
while(!feof($file)){
$lines[] = fgets($file);
}
fclose($file);
for($x = 0; $x < sizeof($lines); $x++){
echo $lines[$x];
}
echo '</response>';
?>
xmlHttp = createXmlHttpObject();
xmlHttp.open("GET", "getClientData.php?folder="+dir, false);
xmlHttp.onreadystatechange = function() {
if (xmlHttp.readyState == 4 && (xmlHttp.status == 200 || xmlHttp.status == 206)) {
xmlResponse = xmlHttp.responseXML;
xmlDocumentElement = xmlResponse.documentElement;
var message = xmlDocumentElement.firstChild.textContent;
}
};
xmlHttp.send();
我是在一个树莓皮3模型B,拉斯宾杰西,如果这与它有关。以及Apache2。
有趣的是,当我更改PHP文件时,有一个I/EL语句,比如“if(FielySt存在($PATH)){}} {回音“null”}),如果我从输入中调用JavaScript中的Alcter(),我会得到“NULL”。这就是为什么我的第一个假设是文件权限或php.ini设置。
最佳答案
所以我解决了。我会详细描述我是如何解决的。
首先,请确保打开并关闭安全模式。查看Apache2 php.in I和常规php.ini,因为有两个php.ini,我相信必须对它们进行设置才能使其正常工作。如果您在平台上安装了带有apache2的php,那么两个php.ini文件都应该位于“/etc/php5”下。将有一个名为“apache2”和“cli”的文件夹。每个人都有一个文件。
其次,Chrome的Web开发工具非常棒。在打开Chrome浏览器的情况下按F12并转到“网络”选项卡。在选项卡顶部会有一个复选框,上面写着“禁用缓存”。这可以确保Chrome不会将您的更改结果缓存到您的网站。保持此窗口打开,因为如果关闭它,它将不再禁用缓存!!! 你也可以下载一个Chrome扩展,比如“缓存杀手”,它同样会禁用缓存结果。而且,对于CWDT,Console选项卡是一个调试奇迹。我一直在Aptana上编程,它根本不擅长注意到小分号或括号错误。利用这个工具!它会像救我一样救你的命!!
如果我没有详细解释,请提出问题或评论。
关于javascript - 使用fopen()从PHP将PHP中的文件内容回显到javascript,file_exists()不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41683941/