我以前的代码片段丢失了;在JavaScript块中关闭之后?>。对于这种疏忽感到抱歉。
我决定测试我的新解决方案,现在一切都很稳固。因为这个问题很复杂,只有足够的信息来解决早期问题。请修改您的标题,如“从远程目录中的图像文件阵列创建json字符串”或类似内容。有关任何后续问题的支持,请发布一个新的非复合问题。
我有一个文件名为canvaswriter.php:
<?php
/* *** Server structure used during testing:
/test
/folder
canvaswriter.php
request.php
/Web
ex1_1.png
ex1_2.png
ex2_1.png
*** */
$path="../Web/";
include("request.php");
?>
<script type="text/javascript">
var images=<?php echo json_encode($pngs); ?>;
console.log(images);
</script>
我不会亲自写一个包括什么本质上是代码从服务器收获文件的两行,但您的特定情况下,你可能想要处理包含的所有javascript。我不知道剩下的魔法将在哪里发生。
这里是request.php:
<?php
echo "Build array of .png images from directory files:<br>";
//$files=array_diff(scandir($path),array('..','.')); // no filetype filter
chdir($path); // set correct directory for glob()
$pngs=glob("*.png"); // with filename pattern filter
print_r($pngs);
?>
的页面将显示:从png格式目录中的文件的图像的
构建阵列:
阵列([0] => ex1_1 .png [1] => ex1_2.png [2] => ex2_1。PNG)
的源代码会显示:
Build array of .png images from directory files:<br>
Array (
[0] => ex1_1.png
[1] => ex1_2.png
[2] => ex2_1.png
)
<script type="text/javascript">
var images=["ex1_1.png","ex1_2.png","ex2_1.png"];
console.log(images);
</script>
并在控制台显示:
["ex1_1.png", "ex1_2.png", "ex2_1.png"]
最后,我不明白你为什么写这些影像到帆布。你是否将这些.png图像转换为base64,然后将它们写入画布?是否有理由不能按原样使用它们并循环使用它们?看起来像不必要的额外工作,但我又没有所有的信息。我希望这能够充分解决您的问题,并帮助您继续实施项目。
如果您需要模式匹配来将文件过滤为只有.png图像,那么glob()可能比scandir()更有帮助。 – mickmackusa
这看起来像我想要的,但当我使用它时,我得到一个错误,说它期望一个快递,但得到了一个<。 – Addem
不知道它是否重要,但我有脚本在外部文件。我只输入从'var ...'到'... images)的部分;' – Addem