从js文件计算目录中的图像

时间:2015-07-25 15:14:35

标签: javascript php

我在js文件中有一个图像加载功能。

它将1.jpg的图像加载到指定的数字(比方说20)。

我想要做的不是指定数字,而是找出文件夹中有多少图像,然后将其用作指定的数字。

我知道可以在PHP中使用GLOB,但AFAIK你不能在js文件中使用PHP吗?

$customer = \Stripe\Customer::create(array(
    "source" => $token,
    "description" => "{$fn} {$ln}",
    "email" => $e,
    "plan" => "basic_plan_id")
 );

\Stripe\Charge::create(array(
  "amount" => 10000, # amount in cents, again
  "currency" => "eur",
  "customer" => $customer->id)
);

那么如何从我传递给我的加载图片功能的网址中获取文件数量?

或者有更好的方法吗?

1 个答案:

答案 0 :(得分:1)

不是依赖于按顺序排列的图片,而是使用foreach循环或创建一个脚本,只需将文件名作为JSON回复,以便javascript请求

<?foreach(array_map('basename',glob('memes/*.jpg')) as $value){?>
    <img src='memes/<?=htmlentities($value,ENT_QUOTES|ENT_XML1|ENT_SUBSTITUTE,"UTF-8",true)?>' style='height:200px;'/>
<?}?>

<?
if(isset($_GET['pic_list'])){
    header('Content-Type: application/json; charset=UTF-8');
    echo json_encode(array_map('basename',glob('memes/*.jpg')),JSON_PRETTY_PRINT);
    exit;
}
?>
<div id='pic_list'></div>
<script>//<![CDATA[
    (()=>{
        var
            xhr=new XMLHttpRequest()
            ,list=document.getElementById('pic_list');
        xhr.onload=()=>{
            var frag=new DocumentFragment();
            xhr.response.forEach((v)=>{
                var img=document.createElement('img');
                img.src='memes/'+v;
                img.style.height=200;
                frag.appendChild(img);
            });
            list.appendChild(frag);
        };
        xhr.open("GET","?pic_list");
        xhr.responseType="json";
        xhr.send();
    })();
//]]></script>