Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/go/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 导出file.gz中的关键字_Php_Export_Keyword - Fatal编程技术网

Php 导出file.gz中的关键字

Php 导出file.gz中的关键字,php,export,keyword,Php,Export,Keyword,我有一个xxx.gz文件,它包含以下一些文本字符: Array ( [f_name] => YOKICHI [l_name] => KOSHIZAWA [name] => YOKICHI KOSHIZAWA [street_address] => 7164 fake [city] => CANTON [state] => MI [zip] => 48187 [country] => United States [phone] => 734-3

我有一个xxx.gz文件,它包含以下一些文本字符:

Array
(
[f_name] => YOKICHI
[l_name] => KOSHIZAWA
[name] => YOKICHI KOSHIZAWA
[street_address] => 7164 fake
[city] => CANTON
[state] => MI
[zip] => 48187
[country] => United States
[phone] => 734-354-6599
[email] => ykoshizawxxa@att.net
[discount_percent] => 0.00
[discount_amount] => 0
[discount_items] => 
[shipping_region] => USA
[shipping_type] => 
[shipping_priority] => 
[shipping_options] => 
[shipping_total] => 0
)
我需要一个PHP源代码在本地主机上运行,可以过滤然后导出以下信息:

| f_name | l_name | street_address | city | state | zip | phone | country
例如:

| YOKICHI | KOSHIZAWA | 7164 fake | CANTON | MI | 48187 | 734-354-6567 | United States

我为您编写了代码,不要只是复制它,试着用它来学习:)


看看这里:没有人会为您编写正则表达式…@Ishaypeld使用正则表达式可能不是一个好主意,如果数据可能会更改,例如如果添加了嵌套数组。你最好使用一些能够解析上下文无关语言的工具。@Jost这对于手头的任务来说似乎有点过分了(;谢谢你的好代码,但它的显示是:数组(8){[“f_name”]=>string(7)“YOKICHI”[“l_name”]=>string(9)“KOSHIZAWA”[“street_address”]=>string(9)“7164 fake”[“city”=>string(6)“CANTON”[“state”=>string(2)“MI”[“zip”]=>string(5)“48187”[“country”]=>string(13)“United States”[“phone”]=>string(12)“734-354-6599”}……你可以帮我处理| YOKICHI | KOSHIZAWA | 7164 fake | CANTON | MI | 48187 734-354-6567 | United StatesOk good…….我只编辑:if(在|数组中($k,$keys)){$sort[$k]=“$v;”看起来您的服务器没有配置好显示var_转储,您可以用
echo'';print_r($sort);echo'';替换
var_转储($sort);
// $source = file_get_contents($file);
$source = 'Array
(
[f_name] => YOKICHI
[l_name] => KOSHIZAWA
[name] => YOKICHI KOSHIZAWA
[street_address] => 7164 fake
[city] => CANTON
[state] => MI
[zip] => 48187
[country] => United States
[phone] => 734-354-6599
[email] => ykoshizawxxa@att.net
[discount_percent] => 0.00
[discount_amount] => 0
[discount_items] => 
[shipping_region] => USA
[shipping_type] => 
[shipping_priority] => 
[shipping_options] => 
[shipping_total] => 0
)';

// convert input to array
$arr = explode(PHP_EOL, $source);

// clean top and bottom of the array
array_shift($arr);
array_shift($arr);
array_pop($arr);

// init final array
$final = array();

foreach($arr as $v)
{
    $o = array();
    $v = preg_match_all('#\[([a-zA-Z0-9 _.-]+)\] => (.*)#', $v, $o);

    $key = $o[1][0];
    $val = (isset($o[2][0])) ? $o[2][0] : ''; 

    // fill final
    $final[$key] = $val;
}

// init the filtered array
$sort = array();
// keys you want to have in
$keys = array('f_name','l_name','street_address','city','state','zip','phone','country');

foreach($final as $k => $v)
{
    if(in_array($k, $keys))
    {
        $sort[$k] = $v;
    }
}

var_dump($sort);