我有一个特定的问题。我正在以PHP格式检索字符串格式的数据。我必须从string中分离出特定的值。我的字符串看起来像这样
Barcode formatQR_CODEParsed Result TypeURIParsed Resulthttp://www.myurl.co.uk var ga.
Barcode formatQR_CODEParsed Result TypeTEXTParsed ResultMy Coat var ga.
从上面两个例子可以看出,“条形码格式Q_CODEParsed结果类型”和“解析结果”之后的文本正在发生变化。 我已经尝试过strstr函数,但是它没有给我想要的输出,因为“Parsed Result”这两个字重复了两次。我怎么能提取出来之后会出现的任何值/文本?我怎么能把它们分开呢?如果有人可以,我会很感激因为我是新蜜蜂。 感谢
答案 0 :(得分:0)
最快的方法是使用SimpleXML
解析这段HTML代码并获取<b>
个孩子的值。
答案 1 :(得分:0)
直到你发现第一个区别为止。应该不是问题?
$str1 = "Hello World";
$str2 = "Hello Earth";
for($i=0; $<min(strlen($str1),strlen($str2)); $i++){
if ($str1[$i] != $str2[$i]){
echo "Difference starting at pos $i";
}
}
或类似的东西。然后你可以使用substr删除相等的部分。
编辑:如果您的字符串始终具有相同的模式,并且<b>
中包含的值可以完美地使用正则表达式来获取值。
答案 2 :(得分:0)
我找到了解决方案。我们可以通过这种方式提取字符串:
<?
$mycode='Barcode formatQR_CODEParsed Result TypeURIParsed Resulthttp://www.myurl.co.uk var ga';
$needle = 'Parsed Result';
$chunk=explode($needle,$mycode);
$mychunky= $chunk[2];
$needle = 'var ga';
$result = substr($mychunky, 0, strpos($mychunky, $needle));
print($result);
?>
答案 3 :(得分:0)
这对你有用。此外,您可以进一步扩展这个想法,并根据自己的需要进行开发。
$string = "Barcode formatQR_CODEParsed Result TypeURIParsed Resulthttp://www.myurl.co.uk var ga." ;
$matches = array() ;
$pattern = "/Type([A-Z]+)Parsed Result([^>]+) var ga./" ;
preg_match($pattern, $string, $matches) ; // Returns boolean, but we need matches.
然后得到出现:
$matches[0] ; // The whole occurence
$matches[1] ; // Type - "([A-Z]+)"
$matches[2] ; // Result - "([^>]+)"
因此,分别使用带有indeces 1和2的元素作为Type和Result。希望它可以提供帮助。