求写sscanf的正则表达式 本帖最后由 sishenaiyin 于 2012-05-07 15:06:31 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我记得上次你问的示例是有空格隔开各项数据的,所以我建议你用explode或者sscanf,现在看来各项数据好像都粘在一起的。。就不好用sscanf了,得上正则,而且你得确保第三个值总是两位小数点的$str = <<<STR697【代练堂】70-85级★赠4000金五大声望尊敬★纯任务70.0084STR;preg_match('#(\d+)(.*?)(\d+\.\d{2})(\d+)$#',$str,$m);print_r($m); 我给你的示例,是直接文本里输入中文的,所以需要指定文件编码,比如指定为utf-8(利用'文件另存为'按钮,选择utf-8无bom头),然后通告浏览器以utf-8编码呈现结果。<?phpheader("Content-type:text/html;charset=utf-8");$str = <<<STR697【代练堂】70-85级★赠4000金五大声望尊敬★纯任务70.0084STR;preg_match('#(\d+)(.*?)(\d+\.\d{2})(\d+)$#',$str,$m);print_r($m);?>你是从webservice获取数据的,注意编码一致就好了,比如获取的数据如果也是utf-8,你就需要加和上面一样的header通知浏览器,如果是入mysql数据库,也可以用SET NAMES utf8语句指定入库编码。 程序与页面统一编码。header() 中文能够正常显示了,但循环无法显示数据<?php$client = new SoapClient("http://s.dailiangu.com:8011/WebLocalData.asmx?WSDL");$p = $client->Return_Package(array('UN'=>'dailiantang','PS'=>'xieyanjobb1306','TopCount'=>'5'));$se = $p->Return_PackageResult->any;//将长字符串分割开$jj = explode("68",$se);//循环不能正常显示foreach($jj as $key=>$value){preg_match('#(\d+)(.*?)(\d+\.\d{2})(\d+)$#',$value,$m);echo $m[1]."-".$m[2]."-".$m[3]."-".$m[4];echo "<hr>";}//下面能够正常显示$str = "697【代练堂】70-85级★赠4000金五大声望尊敬★纯任务70.0084";preg_match('#(\d+)(.*?)(\d+\.\d{2})(\d+)$#',$str,$m);echo $m[1]."-".$m[2]."-".$m[3]."-".$m[4];?> 得,感情你连返回数据的格式都没弄清啊,返回的确实是xml数据格式的,你看下你这个页面的浏览器源代码数据集人家都帮你弄好格式返回给你了,你处理下xml就成了<?phpheader("Content-type:text/html;charset=utf-8");$client = new SoapClient("http://s.dailiangu.com:8011/WebLocalData.asmx?WSDL");$p = $client->Return_Package(array('UN'=>'dailiantang','PS'=>'xieyanjobb1306','TopCount'=>'5'));$se = $p->Return_PackageResult->any;//将长字符串分割开$dom = simplexml_load_string($se);foreach($dom->NewDataSet->Get_WebLocalData as $datas){ //print_r($datas); echo "work id:".$datas->WorkID."<br/>";}?> 绕了一大圈。。我上次那边给你说返回数据应该是xml数据,结果也给你绕进去了。。呵呵,自己慢慢弄吧。我忙去了。 这不是不懂这玩意嘛,第一次接触,非常非常感谢两位大哥的教导,特别是foolbirdflyfirst兄弟,真是感激不尽哪。 header("Content-type:text/html;charset=utf-8");$client = new SoapClient("http://s.dailiangu.com:8011/WebLocalData.asmx?WSDL");$p = $client->Return_Package(array('UN'=>'dailiantang','PS'=>'xieyanjobb1306','TopCount'=>'5'));$se = $p->Return_PackageResult->any;$dom = simplexml_load_string($se);foreach($dom->NewDataSet->Get_WebLocalData as $datas) { foreach($datas as $k=>$v) echo "$k : $v <br />"; echo '<br />';}WorkID : 68 PID : 697 Ptitle : 【代练堂】70-85级★赠4000金五大声望尊敬★纯任务 Pri : 70.00 H : 84 WorkID : 68 PID : 698 Ptitle : 【代练堂】【S11荣誉战场毕业】全套加武器【秒排2-3天】 Pri : 50.00 H : 84 WorkID : 68 PID : 700 Ptitle : 【代练堂】dnf手工代练刷段刷尊【任意等级-尊2】 Pri : 40.00 H : 24 WorkID : 68 PID : 715 Ptitle : 【代练堂】【1-80级急速招募版】2天完成 全区全服 Pri : 30.00 H : 60 WorkID : 68 PID : 716 Ptitle : 【代练堂】【1-85级包卡135元】送大鸟五大声望尊敬 Pri : 135.00 H : 108 求助一个正责 请问如何从radio button取值,存储到mysql数据库?? 后台用户权限访问控制的问题,请指教! 分类ID和商品名称在两个表里,我如何能按分类取出商品并且按str排序 字符串定界符问题----在线等 为什么用dreamweaver每次要修改字体? 高分求教:关于获得值的问题。 如何逐一读取记录 流动的变量 xmlhttp,submit,window.open mysql字段插入代码 请教PHP调用C#的WEBSERVICE问题 关于textarea 中处理回车的问题
697【代练堂】70-85级★赠4000金五大声望尊敬★纯任务70.0084
STR;
preg_match('#(\d+)(.*?)(\d+\.\d{2})(\d+)$#',$str,$m);
print_r($m);
<?php
header("Content-type:text/html;charset=utf-8");
$str = <<<STR
697【代练堂】70-85级★赠4000金五大声望尊敬★纯任务70.0084
STR;
preg_match('#(\d+)(.*?)(\d+\.\d{2})(\d+)$#',$str,$m);
print_r($m);
?>
你是从webservice获取数据的,注意编码一致就好了,比如获取的数据如果也是utf-8,你就需要加和上面一样的header通知浏览器,如果是入mysql数据库,也可以用SET NAMES utf8语句指定入库编码。
<?php
$client = new SoapClient("http://s.dailiangu.com:8011/WebLocalData.asmx?WSDL");
$p = $client->Return_Package(array('UN'=>'dailiantang','PS'=>'xieyanjobb1306','TopCount'=>'5'));
$se = $p->Return_PackageResult->any;
//将长字符串分割开
$jj = explode("68",$se);
//循环不能正常显示
foreach($jj as $key=>$value){
preg_match('#(\d+)(.*?)(\d+\.\d{2})(\d+)$#',$value,$m);
echo $m[1]."-".$m[2]."-".$m[3]."-".$m[4];
echo "<hr>";
}
//下面能够正常显示
$str = "697【代练堂】70-85级★赠4000金五大声望尊敬★纯任务70.0084";
preg_match('#(\d+)(.*?)(\d+\.\d{2})(\d+)$#',$str,$m);
echo $m[1]."-".$m[2]."-".$m[3]."-".$m[4];
?>
数据集人家都帮你弄好格式返回给你了,你处理下xml就成了
<?php
header("Content-type:text/html;charset=utf-8");
$client = new SoapClient("http://s.dailiangu.com:8011/WebLocalData.asmx?WSDL");
$p = $client->Return_Package(array('UN'=>'dailiantang','PS'=>'xieyanjobb1306','TopCount'=>'5'));
$se = $p->Return_PackageResult->any;
//将长字符串分割开
$dom = simplexml_load_string($se);
foreach($dom->NewDataSet->Get_WebLocalData as $datas)
{
//print_r($datas);
echo "work id:".$datas->WorkID."<br/>";
}
?>
$client = new SoapClient("http://s.dailiangu.com:8011/WebLocalData.asmx?WSDL");
$p = $client->Return_Package(array('UN'=>'dailiantang','PS'=>'xieyanjobb1306','TopCount'=>'5'));
$se = $p->Return_PackageResult->any;$dom = simplexml_load_string($se);
foreach($dom->NewDataSet->Get_WebLocalData as $datas) {
foreach($datas as $k=>$v) echo "$k : $v <br />";
echo '<br />';
}WorkID : 68
PID : 697
Ptitle : 【代练堂】70-85级★赠4000金五大声望尊敬★纯任务
Pri : 70.00
H : 84 WorkID : 68
PID : 698
Ptitle : 【代练堂】【S11荣誉战场毕业】全套加武器【秒排2-3天】
Pri : 50.00
H : 84 WorkID : 68
PID : 700
Ptitle : 【代练堂】dnf手工代练刷段刷尊【任意等级-尊2】
Pri : 40.00
H : 24 WorkID : 68
PID : 715
Ptitle : 【代练堂】【1-80级急速招募版】2天完成 全区全服
Pri : 30.00
H : 60 WorkID : 68
PID : 716
Ptitle : 【代练堂】【1-85级包卡135元】送大鸟五大声望尊敬
Pri : 135.00
H : 108