如何使用php从大字符串中解析数据? [英] How to parse data from a big string using php?
问题描述
我得到一个如下所示的大字符串(数据集数量未知):
i got a big string as shown below(number of sets of data is not known):
p '5123': {
p 'tmp': p '1', p 'name': p 'mango', p 'abc': p 'abcd4 http://mysite/items/1234', p 'number': p '1123', p 'itemCategory_title': p 'fruits', p 'logo': p '2123.png', p 'itemCategory_id': p '90'
}, p '700': {
p 'tmp': p '0', p 'name': p 'cherry', p 'abc': p 'abcd4 http://mysite/items/1235', p 'number': p '1124', p 'itemCategory_title': p 'fruits', p 'logo': p '2124.png', p 'itemCategory_id': p '91'
}, p '800': {
....................
我想从中提取以下数据并为每组数据创建一个超链接!(提取以下值:tmp,name,abc,number,itemCategory_title,logo,itemCategory_id)
i want to extract the following data from it and create a hyperlink for each set of data! (extract following values: tmp,name,abc,number,itemCategory_title,logo,itemCategory_id)
谁能告诉我如何提取以下数据?提前致谢.
could any one tell me how i can extract the following data ?Thanks in advance.
抽取一组数据进行采样:
sample one set of data to extract :
tmp=1
name=mango
abc=abcd4 http://mysite/items/1234
number=1123
itemCategory_title=fruits
log=2123.png
itemCategory_id=90
通过php输出这个html超链接:
output this html hyperlinks via php:
<a href="./process.php?tmp=1&name=mango&abc=abcd4 http://mysite/items/1234&number=1123&itemCategory_title=fruits&log=2123.png&itemCategory_id=90">mango </a> <br />
<a href="./process.php?tmp=1&name=cherry&abc=abcd4 http://mysite/items/1235&number=1124&itemCategory_title=fruits&log=2124.png&itemCategory_id=91">cherry </a> <br />
code2 保存示例输入字符串:
code2 holds the sample input string:
$code2 = stripslashes($_POST['outputtext']);
$clean_str = str_replace("p '","'",$code2);
$serialized = serialize($clean_str);
$expected_array = unserialize($serialized);
print_r($expected_array);
// iterate the new array
for($i = 0; $i < count($expected_array); $i++){
?>
<a href="./process.php?tmp=<?php echo $expected_array['tmp'] ; ?>&name=<?php echo $expected_array['name'] ; ?>&abc=<?php echo $expected_array['abc'] ; ?>&itemCategory_title=<?php echo $expected_array['itemCategory_title'] ; ?>&log=<?php echo $expected_array['log'] ; ?>&itemCategory_id=<?php echo $expected_array['itemCategory_id'] ; ?>"><?php echo $expected_array['itemCategory_title'] ; ?> </a> <br />
<?
}
推荐答案
你可以在这里使用一个技巧.如果您知道 p 在任何地方都很常见,那么将其从字符串中删除.
You can use a trick here. If you know the p is common everywhere then remove it from the string.
$str = "{ p '5123': {
p 'tmp': p '1', p 'name': p 'mango', p 'abc': p 'abcd4 http://mysite/items/1234', p 'number': p '1123', p 'itemCategory_title': p 'fruits', p 'logo': p '2123.png', p 'itemCategory_id': p '90'
}, p '700': {
p 'tmp': p '0', p 'name': p 'cherry', p 'abc': p 'abcd4 http://mysite/items/1235', p 'number': p '1124', p 'itemCategory_title': p 'fruits', p 'logo': p '2124.png', p 'itemCategory_id': p '91'
} }";
$clean_str = str_replace("p '","'",$str);
现在好像是json字符串;
Now it seems like json string;
$expected_array = json_decode($clean_str);
这篇关于如何使用php从大字符串中解析数据?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!