如何使用php解析大字符串中的数据?

如何使用php解析大字符串中的数据?,php,parsing,Php,Parsing,我得到一个大字符串,如下所示(数据集的数量未知): 我想从中提取以下数据,并为每组数据创建一个超链接!(提取以下值:tmp、名称、abc、编号、itemCategory\u标题、徽标、itemCategory\u id) 有人能告诉我如何提取以下数据吗?提前谢谢 采样一组要提取的数据: tmp=1 name=mango abc=abcd4 http://mysite/items/1234 number=1123 itemCategory_title=fruits log=2123.pn

我得到一个大字符串,如下所示(数据集的数量未知):

我想从中提取以下数据,并为每组数据创建一个超链接!(提取以下值:tmp、名称、abc、编号、itemCategory\u标题、徽标、itemCategory\u 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 />
    <?
    }
$code2=stripslashes($_POST['outputtext']);
$clean_str=str_replace(“p'”,$code2);
$serialized=序列化($clean_str);
$expected_array=unserialize($serialized);
打印(预期的数组);
//迭代新数组
对于($i=0;$i<计数($i数组);$i++){
?>


你可以在这里使用一个技巧。如果你知道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字符串

$expected_array = json_decode($clean_str);

你可以在这里使用一个技巧。如果你知道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字符串

$expected_array = json_decode($clean_str);

感谢您的回复。我不知道如何使用preg_match_all处理此类数据!感谢您的回复。我不知道如何使用preg_match_all处理此类数据!感谢pratik soni。我尝试使用您的方法,但使用此方法$clean_str=preg_replace(“/p\s'”,$code2)clean_str显示为空;echo$clean_str;和textarea为空我想在处理数组之前查看clean_str数据我已经编辑了代码。用str_replace替换preg_replace。现在应该可以工作了。谢谢,它删除了p值。如何引用每个数组项,以便在循环中使用它来构建超链接?谢谢pratik soni。我尝试使用您的方法但clean_str使用此方法显示为空$clean_str=preg_replace(“/p\s”“”,$code2);echo$clean_str;和textarea为空我想在处理数组之前查看clean_str数据。我已经编辑了代码。用str_replace替换preg_replace。现在应该可以工作了。感谢它删除了p值。如何引用每个数组项,以便在for循环中使用它来构建超链接?