可能重复:
PHP split alternative?
我是php的初学者, 基本上我试图从一行中提取价值 行格式是键:值
该值可能包含:
所以我想把它分成两部分,以便我在第一次出现时左右两边:
我写了一个函数,因为这将执行文件的每一行
/**
* Returns value of the key if its available in line
* example line
* somekey: someva:lue
* @param type $line pass full line
* @param type $key pass the key
* @return type someva:lue
*/
function extractValue($line, $key){
$value = null;
$value_array = split(":", $line);
if(count($value_array)== 2)
{
if($value_array[0] == $key)
$value = $value_array[1];
}
return $value;
}
我今天刚开始用netbeans编写它,并得到以下警告:拆分已拆除等等
Deprecated: Function split() is deprecated in C:\wamp\www\myprojects\PhpProject1\upload_log.php on line 92
我对php不是很熟悉,你能建议一个替代功能吗?基本上我想把线分成两部分键:值想得到一个线和键的值
感谢您的帮助,
答案 0 :(得分:4)
但是,您的代码很好,您也可以使用:
function extractValue($line, $key)
{
list($_key, $value) = explode(':', $line, 2);
if ($_key == $key) {
return $value;
}
return null;
}
答案 1 :(得分:3)
答案 2 :(得分:1)
如果值也可以包含:
符号,则可能更容易使用:
$value = ltrim(strstr($line, ":"), ":");
^^^^^^ Find the remainder of the string from the first : on
^^^^^ Get rid of the : at the start of the result
修改:您可以采用相同的方式获取密钥:
$key = trim(strstr($line, ":", true));
^^^^ Get everything before the first : symbol
请参阅strstr上的手册。
我正在修剪它,以防钥匙之前或之后有一些空白区域。