使用PHP爆炸和修剪一行

时间:2014-02-24 07:16:12

标签: php parsing explode trim

我从文本文件中读入并将变量分配给列表中的数组。我是通过爆发线爆炸来实现的。

但是,我还想修剪输入两侧的任何空白区域。根据我的理解和测试,这正是trim()的作用。

我想缩短它,以便它重复性更低,更容易阅读。

$config = file_get_contents('scripts/secure/config.txt');  
list($host, $dbname, $username, $password) = explode ("\n", $config);

$host = trim($host); 
$dbname = trim($dbname); 
$username = trim($username); 
$password = trim($password);  

我尝试过几种不同的方法,但似乎都没有。我上面所做的工作,但我正在寻找单线方法。

4 个答案:

答案 0 :(得分:4)

我有一种更简单的方式回答here

使用array_map

list($host, $dbname, $username, $password) = array_map('trim', explode("\n", $config));

答案 1 :(得分:2)

使用preg_split()

list($host, $dbname, $username, $password) = preg_split("/\\s*\\n\\s*/",trim($config));

答案 2 :(得分:0)

我相信这足以回答我的问题。除非有人可以提出一些你可以实际保存变量名称的东西,而不必经历并重命名它们(这将是非常棒的。)

我做到了。

$config = file_get_contents('scripts/secure/config.txt');  
$configData = array_map('trim', explode("\n", $config));  

只是按数组的位置引用我的数据。我知道它应该在哪里,所以这是有效的。

这里的帖子特别帮助我找到了答案。

How can I explode and trim whitespace?

我仍然希望在一行中按名称使用变量。如果有人知道如何,那么我会给你积分。

由于

答案 3 :(得分:0)

这样的东西? :

$config_names = array("host", "dbname", "username", "password");
$config = file_get_contents('scripts/secure/config.txt');   

$data = array_combine($config_names), array_map("trim", explode ("\n", $config)));
foreach($data as $k => $v){
  $$k = $v;
}

print $host.":".$dbname.":".$username.":".$password;