如何使用php从大字符串中解析数据? [英] How to parse data from a big string using php?

查看:50
本文介绍了如何使用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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆