PHP循环获取第三方数据 php中foreach循环遍历数组

php请求第三方数据方法方法有很多,其中有file_get_contents把数据读到一个字符串中 , 还有一个是curl方式 , 两种方式有所不同,查一下就知道区别了
PHP生成和获取XML格式数据 在做数据接口时 我们通常要获取第三方数据接口或者给第三方提供数据接口 而这些数据格式通常是以XML或者JSON格式传输 本文将介绍如何使用PHP生成XML格式数据供第三方调用以及如何获取第三方提供的XML数据
生成XML格式数据
我们假设系统中有一张学生信息表student 需要提供给第三方调用 并有id name sex age分别记录学生的姓名 性别 年龄等信息
CREATE TABLE `student` (
`id` int( ) NOT NULL auto_increment
`name` varchar( ) NOT NULL
`sex` varchar( ) NOT NULL
`age` *** allint( ) NOT NULL default
PRIMARY KEY(`id`)
) ENGINE=MyISAMDEFAULT CHARSET=utf ;
首先 建立createXML php文件 先连接数据库 获取数据
include_once ( connect php ) //连接数据库
$sql = select * from student ;
$result = mysql_query($sql) or die( Invalid query: mysql_error())
while ($row = mysql_fetch_array($result)) {
$arr[] = array(
name = $row[ name ]
sex = $row[ sex ]
age = $row[ age ]

}
这个时候 数据就保存在$arr中 你可以使用print_r打印下数据测试
接着 建立xml 循环数组 将数据写入到xml对应的节点中
$doc = new DOMDocument( utf )// 声明版本和编码
$doc formatOutput = true;
$r = $doc createElement( root )
$doc appendChild($r)
foreach ($arr as $dat) {
$b = $doc createElement( data )
$name = $doc createElement( name )
$name appendChild($doc createTextNode($dat[ name ]))
$b appendChild($name)
$sex = $doc createElement( sex )
$sex appendChild($doc createTextNode($dat[ sex ]))
$b appendChild($sex)
$age = $doc createElement( age )
$age appendChild($doc createTextNode($dat[ age ]))
$b appendChild($age)
$r appendChild($b)
}
echo $doc saveXML()
我们调用了PHP内置的类DOMDocument来处理与生成xml 最终生成的xml格式请点击这里看效果
?xml version= encoding= utf ?
root
data
name李王皓/name
sex男/sex
age /age
/data

/root
获取XML格式数据
现在我们假设要从第三方获取学生信息 数据格式是XML 我们需要使用PHP解析XML 然后将解析后的数据显示或者写入本地数据库 而这里关键的一步是解析XML
PHP有很多中方法可以解析XML 其中PHP提供了内置的XMLReader类可以循序地浏览过xml档案的节点 你可以想像成游标走过整份文件的节点 并抓取需要的内容 使用XMLReader是高效的 尤其是读取非常大的xml数据 相对其他方法 使用XMLReader消耗内存非常少
header( Content type:text/; Charset=utf )
$url = // helloweba /demo/importXML/createXML php ;
$reader = new XMLReader()//实例化XMLReader
$reader open($url) //获取xml
$i= ;
while ($reader read()) {
if ($reader nodeType == XMLReader::TEXT) { //判断node类型
$m = $i% ;
if($m== )
$name = $reader value;//读取node值
if($m== )
$sex = $reader value;
if($m== ){
$age = $reader value;
$arr[] = array(
name = $name
sex = $sex
age = $age

}
$i;
}
}
//print_r($arr)
lishixinzhi/Article/program/PHP/201311/21636
php 中怎么 循环提取三维数组的数据最简单的方法就是三个循环 , 比如
for($i=0;$ix;$i)
for($j=0;$jy;$j)
for($k=0;$kz;$k)
echo array[$i][$j][$k];
php怎么循环数据库里的内容您好,可参考如下思路,然后结合自己的业务逻辑即可:
?php
//首先链接数据库
$conn = mysql_connect('主机名','数据库登陆用户名','数据库登陆密码') or die('链接数据库失败');
//选择数据库
mysql_select_db( 'test',$conn );
//假设test数据库中有文章表,article,表有字段 id,title,create_time 那么可采用如下代码循环读出里面数据
//进行SQL查询-查询article中的数据并按照id倒序排列
$sql = 'SELECT *FROM article ORDER BY id DESC';
//获取执行结果
$result = mysql_query( $sql,$conn );
if( !$result ) die( '执行SQL语句失败' );
//循环读出结果集中的数据
while( $row = mysql_fetch_assoc( $result ) )
{
//输出数据
echo $row['id'].'--'.$row['title'].'--'.$row['create_time'].'br/';
}
//如果test中有三条数据 , 比如下列数据
//id titlecreate_time
//1文章标题12014/10/31 14:20
//2文章标题22014/11/01 15:12
//3文章标题32014/11/03 12:10
//那么执行代码后,网页应显示如下:
//3--文章标题3--2014/11/03 12:10
//2--文章标题2--2014/11/01 15:12
//1--文章标题1--2014/10/31 14:20
?
PHP 获取数据库数据库并loop循环看起来有点像discuz!PHP循环获取第三方数据的模板..........
感觉你的意思应该是:
!--{loop $author_group $v}--
lia href="https://www.04ip.com/post/forum.php?mod=viewthreadtid=$v[tid]"$v[subject]/a/li
!--{/loop}--
如果真的是discuz!的模板的说PHP循环获取第三方数据,你可以找找template_t这个文件夹(好吧 , 如果我没有记错的话)里面有编译后的php模板代码 。
结果大致上应该是(discuz好像是要求开启短标签的,所以下面也用PHP循环获取第三方数据了短标签)
? is_array($author_group) { foreach($author_group as $v) { ?
lia href="https://www.04ip.com/post/forum.php?mod=viewthreadtid=?=$v['tid']?"?=$v['subject']?/a/li
? } }?
如果你看得懂php , 只是不明白discuz!(我就假设我猜对PHP循环获取第三方数据了吧)模板机制,你可以看看源代码,从中找出模板编绎的方式,discuz!的模板机制是非常简单的东西 。
如果你看不懂php,那你想要自己改模板的话,建议先花些时间学习下 。
【PHP循环获取第三方数据 php中foreach循环遍历数组】关于PHP循环获取第三方数据和php中foreach循环遍历数组的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。

    推荐阅读