我有以下Feed值
<item>
<description><strong>Contact Number:</strong> +91-00-000-000<br /><br /><strong>Rate:</strong> xx.xx<br /><br /><strong>Fees and Comments:<br /></strong><ul><li>$0 fees</li><li>Indicative Exchange Rate</li></description>
</item>
现在我想获得联系号码和费率以及费用和评论的分数。
我怎样才能得到这个值..一个人????
答案 0 :(得分:0)
您可能应该使用解析引擎阅读此内容。但是如果你的用例很简单,那么这个正则表达式将会:
^(?=.*?Contact\sNumber:<\/strong>([^<]*))(?=.*?Rate:<\/strong>([^<]*))(?=.*?Fees\sand\sComments:.*?<li>([^<]*)<.*?<li>([^<]*)<)
答案 1 :(得分:0)
这取决于您的其他Feed(或未来Feed)的可靠模式。它看起来不像XML解析器在这里工作,因为该示例看起来不像格式良好的XML。 一个好的开始方法是使用explode将字符串拆分为一个字符串数组,看起来像是一个很好的分隔符。所以这看起来像:
$split_feed = explode("<br />",$feed);
其中$ feed是问题中的Feed输入,$ split_feed将是您的输出数组。
然后,从该分割提要中,您可以使用strpos(或stripos)来测试字符串中的键,以确定它引用的字段,并替换以从键/值字符串中获取值。
答案 2 :(得分:0)
I think this is you want
<?php
$value = '<strong>Contact Number:</strong> +91-00-000-000<br /><br />
<strong>Rate:</strong> xx.xx<br /><br />
<strong>Fees and Comments:<br /></strong><ul><li>$0 fees</li>
<li>Indicative Exchange Rate</li>';
$steps = explode('<br /><br />', $value);
$step_2_for_contact_number = explode('</strong>', $steps[0]);
$contact_number = $step_2_for_contact_number[1];
$step_for_rate = explode('</strong>', $steps[1]);
$rate = $step_for_rate[1];
$feed_n_comment_s_1 = explode('</li>', $steps[2]);
$feed_n_comment_s_2 = explode('<li>', $feed_n_comment_s_1[0]);
$feed_n_comment = $feed_n_comment_s_2[1];
echo $contact_number;
echo "<br/>";
echo $rate;
echo "<br/>";
echo $feed_n_comment;
?>
答案 3 :(得分:0)