PHP如何正确使用爆炸?

时间:2014-01-31 08:44:36

标签: php arrays explode

我得到字符串:

$res = "RESULT: SUCCESS
NUMBER_TYPE:    0";

我想得到“结果”,为此我使用explode

$arr = explode('\n\r', $res);
$result = trim(explode('RESULT:', $arr[0]));

但我得到Arrayfalse

请告诉我如何正确获取RESULT

P.S。:结果应为SUCCESS

4 个答案:

答案 0 :(得分:1)

您可以使用explode然后preg_split

$arr = explode(':', $res);
$arr = preg_split('/\s+/', $arr[1]);
echo $arr[1];

你也可以使用这个只爆炸。

$arr = explode("\n", $res);
$arr= explode(":", $arr[0]);
echo trim($arr[1]);

答案 1 :(得分:0)

尝试:

$ex = explode(":",$res);
$result = explode("\n",$ex[1]);
$result = $result[0];
echo trim($result); //echoes SUCCESS

或者:

$ex = explode("\n", $res);
$result = explode(":", $ex[0]);
$result = $result[1];
echo trim($result); //echoes SUCCESS

<强> Demo 1

<强> Demo 2

答案 2 :(得分:0)

尝试这样做

$arr = explode(':', $res);
$result = explode(' ', $arr[1]);
print_r($result[0]);

答案 3 :(得分:0)

您的答案的第一个评论是解决方案。但是 - 出于任何原因 - 如果你想获得所有的键和值,你可以为每一行使用preg_match。一个简单的例子:

<?php

$res = "RESULT: SUCCESS
NUMBER_TYPE:    0";

$arr = explode("\n", $res);

foreach($arr as $line)
{
    if(preg_match('/^([A-Z_]+):\s+?([a-zA-Z0-9_]+)$/', $line, $matches))
    {
        echo "Key: " . $matches[1] . " - Value: " . $matches[2] . "\n";
    }
}

输出:

Key: RESULT - Value: SUCCESS
Key: NUMBER_TYPE - Value: 0