You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过jQuery调用同一PHP文件内的多个函数获取目录文件数

你可以通过给请求携带标识参数的方式,让PHP端判断需要执行哪个函数,具体修改如下:

1 调整JS代码

jQuery的load()方法支持在URL后拼接查询参数,你只需要给每个请求带上要调用的函数标识即可:

function stats() {
  $('.result1').load("counter.php?action=a1"); 
  $('.result2').load("counter.php?action=a2"); 
  $('.result3').load("counter.php?action=a3"); 
}

小提示:你原代码中window.onload = stats()写法会立即执行函数,正确写法是window.onload = stats,如果已经能正常触发可以不用调整。

2 修改PHP代码

在PHP文件末尾增加参数接收和判断逻辑,收到对应action参数后执行指定函数即可,这里增加了白名单校验避免非法调用风险:

<?php

function a1() {
$i = 0;
$dir = '../folder1/';
if ($handle = opendir($dir)) {while (($file = readdir($handle)) !== false){if (!in_array($file, array('.', '..')) && !is_dir($dir.$file)) $i++;}}
echo "$i";
}

function a2() {
$i = 0;
$dir = '../folder2/';
if ($handle = opendir($dir)) {while (($file = readdir($handle)) !== false){if (!in_array($file, array('.', '..')) && !is_dir($dir.$file)) $i++;}}
echo "$i";
}

function a3() {
$i = 0;
$dir = '../folder3/';
if ($handle = opendir($dir)) {while (($file = readdir($handle)) !== false){if (!in_array($file, array('.', '..')) && !is_dir($dir.$file)) $i++;}}
echo "$i";
}

// 新增参数处理逻辑
$allow_actions = ['a1', 'a2', 'a3'];
$request_action = $_GET['action'] ?? '';
if (in_array($request_action, $allow_actions)) {
    $request_action();
}
?>

如果想要优化代码,还可以把三个功能重复的统计函数合并为一个,通过参数传递要统计的目录,进一步减少冗余代码。


内容的提问来源于stack exchange,提问作者tez

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 16:36:03