layui表格table怎么引入json读取表格数据显示?

,height:315,url:'/demo/table/user/'//数据接口,page:true//开启分页,cols:[[//表头{field:'id',titl... ,height: 315
,url: '/demo/table/user/' //数据接口
,page: true //开启分页
,cols: [[ //表头
{field: 'id', title: 'ID', width:80, sort: true, fixed: 'left'}
,{field: 'username', title: '用户名', width:80}
,{field: 'sex', title: '性别', width:80, sort: true}
,{field: 'city', title: '城市', width:80}
,{field: 'sign', title: '签名', width: 177}
,{field: 'experience', title: '积分', width: 80, sort: true}
,{field: 'score', title: '评分', width: 80, sort: true}
,{field: 'classify', title: '职业', width: 80}
,{field: 'wealth', title: '财富', width: 135, sort: true}
]]

官网给的是接口,读不出来
展开
 我来答
DoramiHe
2018-02-11 · 知道合伙人互联网行家
DoramiHe
知道合伙人互联网行家
采纳数:25332 获赞数:59541
2011年中山职业技术学院毕业,现担任毅衣公司京东小二

向TA提问 私信TA
展开全部

如上图所示,要扣除里面的表格数据,该怎么弄呢?思路是先把整个表格抠出来,然后按照tr进行分割,存到数组,然后一个个遍历进行正则匹配,最后输出结果转化为json格式,供前台调用!

<?phpclass getHtmlChar {

var $url;    var $pattern_find;    var $pattern_replace;    var $timeout;    /**
* @param url 需要抓取的url链接
* @param pattern_find 需要匹配的字段正则表达式
* @param pattern_replace 需要替换的字符正则表达式
* @param timeout 设置超时阻断程序执行,默认10秒,这个字段一般留空
*/

function __construct($url, $pattern_find, $pattern_replace, $timeout) {
$this->url = $url;        $this->pattern_find = $pattern_find;        $this->pattern_replace = $pattern_replace;        $this->timeout = 10;
}    // 获取网页源代码
function getHtml() {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $this->url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.131 Safari/537.36'); //模拟浏览器,防止被拦截
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $this->timeout);        $html = curl_exec($ch);        // 匹配需要的大的字段,例如一段table,取出来之后再一行一行做匹配
preg_match($this->pattern_find, $html, $match);        //判断是否有传入替换的正则表达式,如果有就进行匹配替换,并返回替换后的字符串,如果没有,则直接返回匹配出来的大段,例如整个table表格
// echo "<pre>";
// print_r($match);
// echo "</pre>";
// exit;
if (!empty($this->pattern_replace)) {            return preg_replace($this->pattern_replace, '', $match[0]);
} else {            return $match[0];
}
}    // 传入正则和需要处理的字符串,返回的是匹配到的数组
function prgMatche($pre_all, $strs) {
if (!is_string($strs)) {            echo '传入的不是字符串!请检查!<br>';            echo "<pre>";
print_r($strs);            echo "</pre>";            exit;
}
preg_match_all($pre_all, $strs, $matches);        return $matches;
}    // 获取表格表头
function getTableJson() {
// 获取一行一行tr
$trs = $this->prgMatche('/<tr([\s\S]+?)<\/tr>/i', $this->getHtml());        // 获取表头
$ths = $this->prgMatche('/<th>([\s\S]+?)<\/th>/i', $trs[1][0]);        // 获取行数,循环匹配的时候需要用到
$num = sizeof($trs[1]);        // echo $num;
// 一行一行匹配表格数据
for ($i = 1; $i < $num; $i++) {            $tr = $this->prgMatche('/td>([\s\S]+?)<\/td>/i', $trs[1][$i]);            $tds[] = $tr[1];
}        // 把表头和表数据存入json
array_unshift($tds, $ths[1]);        // 返回一个数组,0为json格式数据,1为数组格式数据
return [json_encode($tds), $tds];
}
}// 以下是调用这个类的例子$url = 'http://www.pm25.in/chaozhou';$pattern_find = '/<table([\s\S]+?)<\/table>/i';$pattern_replace = '/\s{2,}|\n|<br>| class="O3_8h_dn"/i';$gtd = new getHtmlChar($url, $pattern_find, $pattern_replace, '');$time_start = microtime(true);echo "<pre>";
print_r($gtd->getTableJson());echo "</pre>";$time_end = microtime(true);
printf("这段程序运行的时间为 %s 秒!", $time_end - $time_start);?>

追问
我就是做个简单的HTML,不需要这么负载的PHP什么的,你只需要告诉我,JSON里的数据格式,HTML怎么读的到就可以了
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式