新人请教大神们关于接口问题 大家好!有个问题想请教下,公司要我给IOS提供接口,用php实现,是json格式的,如果转换为json数据中含用html,IOS那边就会出错,那该如何提供含html数据的接口给ios呢?echo json_encode($data,JSON_UNESCAPED_UNICODE);中$data有html,如何处理?弄过的大神帮忙一下,谢谢了 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 json_encode第一个参数必须为数组格式,如果是想把一段HTML通过API返回给IOS用,可能用数组包装后再json_encode,如:array('html'=>'<html>....</html>'),没理解错吧群:318455728,PHPer有问必答。Zend、Laravel、Yii、ThinkPHP、Phalcon、Symfony、CodeIgniter、Kohana等各种基于框架或非框架的PHP开发交流群,欢迎加入。 既然 json数据中含用html,IOS那边就会出错那么为何还要吧 html 发出去呢? 把代码贴完整看看,看看你的data是怎么来的。 两种方法:1.api接口里返回的json数据数组信息,不要传html,html内容可通过接口返回的数据后,调用的地方自行拼接2.返回html内容后报什么错,按理说如果html内容正常转义,应该不会报错的 代码:defined('IN_IA') or exit('Access Denied');$pid=$_GPC['pid'];$cid=$_GPC['cid'];$id=$_GPC['id'];if($id==''){ if($pid==''&&$cid==''){ $data=pdo_fetchall('SELECT * FROM ' . tablename('bj_qmxk_category') . "where weid = 2 and parentid=0 and enabled=1"); }elseif($pid!=''&&$cid==''){ $data=pdo_fetchall('SELECT * FROM ' . tablename('bj_qmxk_category') . "where weid = 2 and parentid='{$pid}'"); }elseif($pid!=''&&$cid!=''){ $tablename = tablename('bj_qmxk_goods'); $pindex = max(1, intval($_GPC['page'])); $psize = 10; $where = ''; $total = pdo_fetchcolumn('SELECT COUNT(*) FROM ' . $tablename . ' WHERE status=1 AND deleted = 0 AND weid = ' . $weid . $where); $pager = pagination($total, $pindex, $psize); $data = pdo_fetchall('SELECT a.id,title,etprice,thumb,b.country,b.img FROM ' . $tablename . ' a LEFT JOIN ' . tablename('bj_qmxk_country') . ' b ON a.country=b.id WHERE status=1 AND deleted = 0 AND a.weid = 2' . $where . ' LIMIT ' . ($pindex - 1) * $psize . ',' . $psize); }}else{ $data = pdo_fetch('SELECT * FROM ' . tablename('bj_qmxk_goods') . "where id = {$_GPC['id']}");}//$tmp_data = str_replace("\"", "'", $data['content']);//echo $tmp_data;//$data['content'] = $tmp_data;echo json_encode($data,JSON_UNESCAPED_UNICODE); Quote: 引用 1 楼 czp010443 的回复:是从数据库直接查出来就json_encode();的 Quote: 引用 3 楼 jordan102 的回复:defined('IN_IA') or exit('Access Denied');$pid=$_GPC['pid'];$cid=$_GPC['cid'];$id=$_GPC['id'];if($id==''){ if($pid==''&&$cid==''){ $data=pdo_fetchall('SELECT * FROM ' . tablename('bj_qmxk_category') . "where weid = 2 and parentid=0 and enabled=1"); }elseif($pid!=''&&$cid==''){ $data=pdo_fetchall('SELECT * FROM ' . tablename('bj_qmxk_category') . "where weid = 2 and parentid='{$pid}'"); }elseif($pid!=''&&$cid!=''){ $tablename = tablename('bj_qmxk_goods'); $pindex = max(1, intval($_GPC['page'])); $psize = 10; $where = ''; $total = pdo_fetchcolumn('SELECT COUNT(*) FROM ' . $tablename . ' WHERE status=1 AND deleted = 0 AND weid = ' . $weid . $where); $pager = pagination($total, $pindex, $psize); $data = pdo_fetchall('SELECT a.id,title,etprice,thumb,b.country,b.img FROM ' . $tablename . ' a LEFT JOIN ' . tablename('bj_qmxk_country') . ' b ON a.country=b.id WHERE status=1 AND deleted = 0 AND a.weid = 2' . $where . ' LIMIT ' . ($pindex - 1) * $psize . ',' . $psize); }}else{ $data = pdo_fetch('SELECT * FROM ' . tablename('bj_qmxk_goods') . "where id = {$_GPC['id']}");}//$tmp_data = str_replace("\"", "'", $data['content']);//echo $tmp_data;//$data['content'] = $tmp_data;echo json_encode($data,JSON_UNESCAPED_UNICODE); json是用来传数据的,不要瞎搞什么html代码,html代码让客户端写。这个规则不定清楚,以后麻烦事更多。 这个我能理解 毕竟有时候要提供文章内容或者一些本来设计数据库的时候字段就有html标签的接口 1.把html标签过滤了 2.文章用webview吧 服务器租用问题 有没有好的开源cms系统支持access数据库? 织梦建站栏目链接颜色如何修改? CMS建站 怎么设置才可以用两个文章频道封面 谈谈大家对网上一些教程资料的看法 发布招聘php程序员若干 PHP执行SQL语句的问题 用php补全数组中的日期 帮忙看下这段代码错在哪? 请问高手,有谁用php开发过android应用? 关于ThinkPHP的重定向问题,大神求助!! 有什么方法,可以跨网站读取有权的的文档?
群:318455728,PHPer有问必答。Zend、Laravel、Yii、ThinkPHP、Phalcon、Symfony、CodeIgniter、Kohana等各种基于框架或非框架的PHP开发交流群,欢迎加入。
那么为何还要吧 html 发出去呢?
1.api接口里返回的json数据数组信息,不要传html,html内容可通过接口返回的数据后,调用的地方自行拼接2.返回html内容后报什么错,按理说如果html内容正常转义,应该不会报错的
$pid=$_GPC['pid'];
$cid=$_GPC['cid'];
$id=$_GPC['id'];
if($id==''){
if($pid==''&&$cid==''){
$data=pdo_fetchall('SELECT * FROM ' . tablename('bj_qmxk_category') . "where weid = 2 and parentid=0 and enabled=1");
}elseif($pid!=''&&$cid==''){
$data=pdo_fetchall('SELECT * FROM ' . tablename('bj_qmxk_category') . "where weid = 2 and parentid='{$pid}'");
}elseif($pid!=''&&$cid!=''){
$tablename = tablename('bj_qmxk_goods');
$pindex = max(1, intval($_GPC['page']));
$psize = 10;
$where = '';
$total = pdo_fetchcolumn('SELECT COUNT(*) FROM ' . $tablename . ' WHERE status=1 AND deleted = 0 AND weid = ' . $weid . $where);
$pager = pagination($total, $pindex, $psize);
$data = pdo_fetchall('SELECT a.id,title,etprice,thumb,b.country,b.img FROM ' . $tablename . ' a LEFT JOIN ' . tablename('bj_qmxk_country') . ' b ON a.country=b.id WHERE status=1 AND deleted = 0 AND a.weid = 2' . $where . ' LIMIT ' . ($pindex - 1) * $psize . ',' . $psize);
}
}else{
$data = pdo_fetch('SELECT * FROM ' . tablename('bj_qmxk_goods') . "where id = {$_GPC['id']}");
}//$tmp_data = str_replace("\"", "'", $data['content']);
//echo $tmp_data;
//$data['content'] = $tmp_data;
echo json_encode($data,JSON_UNESCAPED_UNICODE);
这个规则不定清楚,以后麻烦事更多。
2.文章用webview吧