2016-10-18 52 views
0

我只需要在找到货币符号的迭代中运行foreach。目前,我有这个 -如果语句在foreach循环字符检查

$transferid = $key; 
$donation1 = $value["news"]; 
$donationcomma = getStringBetween($donation1,$from,$to); 
$donation = str_replace(',', '', $donationcomma); 
$playeridregex = preg_match("/XID=(.*)\"/", $donation1, $playerid); 
$playerid1 = preg_replace("/[^A-Za-z0-9'-]/","",$playerid[1]); 

,我可以反过来从字符串获得玩家ID

<a href = "http://www..com/.php?XID=1826888">saeed</a> donated $800,000,000 to the faction 

然而,因为它的立场,我只需要检查字符串包括金钱捐赠, $ 800,000,000。

包括在输出可以是这样的事情

<a href = "http://www..com/.php?XID=2023426">French_</a> donated 1 x First Aid Kit to the faction 

我需要不运行对字符串如这在foreach信息。

+0

[_ **不要使用正则表达式,使用XML解析器。** _](http://stackoverflow.com/a/1732454/510036) – Qix

+0

该问题不是正则表达式。我需要在foreach中运行if语句来检查该行是否有$符号,否则不要运行foreach。 – saeed

+0

@saeed,为什么不使用像\^\ $(。+)\这样的正则表达式来检查一个字符串是以$开头呢还是简单地用PHP函数$ string.startsWith('$');并继续您的操作与结果? – Nicolas

回答

0

据我了解,你可以做这样的事情:

<?php 
foreach($values AS $key=>$value) { 
    if(preg_match('/^(\$)(.+)/', $value) == 1) { 
     $transferid = $key; 
     $donation1 = $value["news"]; 
     $donationcomma = getStringBetween($donation1,$from,$to); 
     $donation = str_replace(',', '', $donationcomma); 
     $playeridregex = preg_match("/XID=(.*)\"/", $donation1, $playerid); 
     $playerid1 = preg_replace("/[^A-Za-z0-9'-]/","",$playerid[1]); 
    } 
} 

但尽管如此,我不知道你在找什么。

+0

什么是'startWith'?你是否引用这个答案,http://stackoverflow.com/a/834355/4333555? – chris85

+0

我指的是实际的php startwith函数,但看起来这篇文章是关于它的。 – Nicolas

+0

没有'startWith' PHP函数,除非你定义它.http://php.net/manual-lookup.php?pattern = startWith&scope = quickref'startwith does not exist.'如果是这样,你可能会通过'$ value',而不是连接它。 – chris85