我以前的代碼片段丟失了;在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