读取包含数组的文本文件 - 显示在表

时间:2015-05-30 06:14:09

标签: php arrays file text

我希望有人可以在这里指出正确的方向,上网几个小时,并找不到解决方案。

首先,我是" OKAY" php编码器..所以这可能是obvi但我迷路了。

我有一个带有array()的txt文件来自api事务列表。

    Array
    (
        [orderid] => 00000000
        [type] => rebill
        [paystatus] => cancelled
    )

    Array
    (
        [orderid] => 000000
        [type] => rebill
        [paystatus] => cancelled
    )
Array
(
    [orderid] => 000000
    [type] => refund
    [paystatus] => cancelled
    [productid] => 939399393
    [firstName] => XXXXXX
    [lastName] => XXXX
    [customeremail] => XXXX
    [amount] => XX.XX
    [refunddate] => 2015-01-01
    [refundstatus] => ok
)

有成千上万的这些数组()' s我用来处理json等为每个人拉,但是现在我完全迷失了。

我可以用

复制文件
$f = fopen("merged.txt", "r");

// Read line by line until end of file
while(!feof($f)) { 
    echo fgets($f) . "<br />";
}

fclose($f);

......那是

我曾经玩过各种各样的foreach,而且无法让它发挥作用。 如果有人能指出正确的方向,我会非常感激。

谢谢!

2 个答案:

答案 0 :(得分:1)

试试这个怎么样?

$content= file_get_contents("merged.txt");

$arrays = explode('Array',ltrim(trim($content),'Array'));

echo "<table>";
foreach($arrays as $key => $value){
    $value = text_to_array("Array".$value);
    echo "<tr>";
        echo "<td>";
            echo $value['orderid'];
        echo "</td>";
    echo "</tr>";
}
echo "</table>";




function text_to_array($str) {

    //Initialize arrays
    $keys = array();
    $values = array();
    $output = array();

    //Is it an array?
    if( substr($str, 0, 5) == 'Array' ) {

        //Let's parse it (hopefully it won't clash)
        $array_contents = substr($str, 7, -2);
        $array_contents = str_replace(array(' ', '[', ']', '=>'), array('', '#!#', '#?#', ''), $array_contents);
        $array_fields = explode("#!#", $array_contents);

        //For each array-field, we need to explode on the delimiters I've set and make it look funny.
        for($i = 0; $i < count($array_fields); $i++ ) {

            //First run is glitched, so let's pass on that one.
            if( $i != 0 ) {

                $bits = explode('#?#', $array_fields[$i]);
                if( $bits[0] != '' ) $output[$bits[0]] = $bits[1];

            }
        }

        //Return the output.
        return $output;

    } else {

        //Duh, not an array.
        echo 'The given parameter is not an array.';
        return null;
    }

}

答案 1 :(得分:0)

首先为所有数组创建一个PHP文件。不是TXT文件。

然后需要对所有数组进行一次更改,定义每个变量中的每个数组。

$var1 = Array
    (
        [orderid] => 00000000
        [type] => rebill
        [paystatus] => cancelled
    )

然后只使用值,

echo $var1['orderid'];

由于