我有一个大字符串,如下所示(数据集的数量未知):
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)
任何人都可以告诉我如何提取以下数据吗?先谢谢。
抽取一组要提取的数据:
tmp=1
name=mango
abc=abcd4 http://mysite/items/1234
number=1123
itemCategory_title=fruits
log=2123.png
itemCategory_id=90
通过php输出这个html超链接:
<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 = 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 />
<?
}
答案 0 :(得分:0)
你可以在这里使用一个技巧。如果您知道p在任何地方都很常见,那么将其从字符串中删除。
$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 string;
$expected_array = json_decode($clean_str);