gpt4 book ai didi

javascript - 在 JavaScript 警报中使用 PHP 从文件中收集的数据

转载 作者:行者123 更新时间:2023-11-27 22:47:48 26 4
gpt4 key购买 nike

我正在制作一个网站,其主要功能是每个目录中的文件列表,可以下载。我还有一个/assets 目录,其中复制了目录树,但每个页面都有必要的图像/脚本,还有用于注释的 .csv 文件,以及每个文件的信息文件,我想在其中显示当用户单击按钮时 JavaScript 警报。

我使用 PHP 动态列出每个目录中的所有文件,以及文件大小和一些其他信息。我设法为每个文件获取一个按钮,如果信息文件不存在,该按钮会发出“无信息”警报。但是,如果该文件确实存在,我会收到两个 JavaScript 错误之一,SyntaxError: untermerated stringliteralSyntaxError:missing ) after argument list

我的带有错误的按钮的源代码最终在警报中的最后一个引号后被分成两行,因此我使用 PHP trim() 函数来删除任何 \ns 或 \rs 留在文件中,但它什么也没做。

至于第二个错误,我尝试使用 PHP 的 htmlentitieshtmlspecialchars 删除文件中的任何引号(因为这个错误一定与此有关)但同样,这没有任何作用。

我列出文件的代码是这样的:

foreach(glob('*') as $filename){
if ($filename[strlen($filename) - 1] != '~'){
$info = '';
$file_type = filetype($filename);
$infoPath = __DIR__ . '/files' . $_SERVER['REQUEST_URI'] . $filename . '.txt';
if (file_exists($infoPath)){
$handle = fopen($infoPath, 'r');
$info = fread($handle, filesize($infoPath));
fclose($handle);
}
if ($info == ''){
$info = 'No info :(';
}
if ($file_type == 'dir'){
echo "<tr><td><img src=\"/assets/images/$file_type.png\" alt=\"$file_type\" width=\"16px\" height=\"16px\" /><a href=\"$filename\">$filename</a></td><td>-</td><td>" . date ("F d Y H:i:s", filemtime($filename)) . "</td><td><button onclick=\"alert('" . trim(htmlentities(htmlspecialcharacters($info))) . "')\">Info</button></td></tr>";
}
else{
echo "<tr><td><img src=\"/assets/images/$file_type.png\" alt=\"$file_type\" width=\"16px\" height=\"16px\" /><a href=\"$filename\">$filename</a></td><td>".filesize($filename)."</td><td>" . date ("F d Y H:i:s", filemtime($filename)) . "</td><td><button onclick=\"alert('" . trim(htmlentities(htmlspecialcharacters($info))) . "')\">Info</button></td></tr>\n";
}
}
}

那么,首先,如何终止字符串文字,其次,如何处理假定的参数列表?

我有一种感觉,我可能必须使用 AJAX,但我本以为我可以将字符串回显到 JavaScript 中。

最佳答案

我认为您的 echo 中有几个错误。转义和串联都不好。

  • 您应该使用 ' 来更好地了解转义代码。

  • 某些 php 代码未正确连接。

  • CSS 代码(宽度和高度)必须位于 style 属性中。

示例:

echo '<tr><td><img src="/assets/images/'.$file_type.png.'" alt="'.$file_type.'" style="width:16px; height:16px;" /><a href="'.$filename.'">'.$filename.'</a></td><td>-</td><td>'.date("F d Y H:i:s", filemtime($filename)).'</td><td><button onclick="alert(\"'.trim(htmlentities(htmlspecialcharacters($info))).'\")">Info</button></td></tr>';

实际上,我认为您不需要使用 Ajax,因为您的代码不需要在特定事件上调用,而是在页面加载时调用一次(如果我错了,请纠正我)。

所以,只要纠正你的 echo 就应该没问题了。

希望有帮助。

关于javascript - 在 JavaScript 警报中使用 PHP 从文件中收集的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38292900/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com