我在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)
);
那么如何从我传递给我的加载图片功能的网址中获取文件数量?
或者有更好的方法吗?
答案 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>