我需要在PHP中获得一个值;预赛基本的(我想)
我正在尝试使用许可证PHP系统… 我想向用户显示他们的许可证状态。 许可证服务器向我提供以下信息:我需要在PHP中获得一个值;预赛基本的(我想),php,preg-match-all,Php,Preg Match All,我正在尝试使用许可证PHP系统… 我想向用户显示他们的许可证状态。 许可证服务器向我提供以下信息: name=Service_Name;nextduedate=2013-02-25;status=Active 我需要像这样分离数据: $name = “Service_Name”; $nextduedate = “2013-02-25”; $status = “Active”; $string = 'name=Service_Name;nextduedate=2013-02-25;status
name=Service_Name;nextduedate=2013-02-25;status=Active
我需要像这样分离数据:
$name = “Service_Name”;
$nextduedate = “2013-02-25”;
$status = “Active”;
$string = 'name=Service_Name;nextduedate=2013-02-25;status=Active';
parse_str(str_replace(';', '&', $string));
echo $name; // Service_Name
echo $nextduedate; // 2013-02-25
echo $status; // Active
我有两天的时间用preg\u match\u解决这个问题,但我不能:(这可以在没有正则表达式的情况下简单地解决。使用
explode()
将对您有所帮助
$str = "name=Service_Name;nextduedate=2013-02-25;status=Active";
$split = explode(";", $str);
$structure = array();
foreach ($split as $element) {
$element = explode("=", $element);
$$element[0] = $element[1];
}
var_dump($name);
尽管我强烈建议您改用数组。比起发明不存在且未显式声明的变量,可读性要高得多。这可以在不使用正则表达式的情况下简单地解决。使用
explode()
将对您有所帮助
$str = "name=Service_Name;nextduedate=2013-02-25;status=Active";
$split = explode(";", $str);
$structure = array();
foreach ($split as $element) {
$element = explode("=", $element);
$$element[0] = $element[1];
}
var_dump($name);
尽管我建议你改用数组。比起发明不存在且未显式声明的变量,可读性要高得多。如果你将
;
替换为&
,这基本上是一个查询字符串。你可以尝试解析
:
$name = “Service_Name”;
$nextduedate = “2013-02-25”;
$status = “Active”;
$string = 'name=Service_Name;nextduedate=2013-02-25;status=Active';
parse_str(str_replace(';', '&', $string));
echo $name; // Service_Name
echo $nextduedate; // 2013-02-25
echo $status; // Active
如果将
;
替换为&
,则这基本上是一个查询字符串。您可以像这样尝试parse_str()
:
$name = “Service_Name”;
$nextduedate = “2013-02-25”;
$status = “Active”;
$string = 'name=Service_Name;nextduedate=2013-02-25;status=Active';
parse_str(str_replace(';', '&', $string));
echo $name; // Service_Name
echo $nextduedate; // 2013-02-25
echo $status; // Active
听起来你只是想把文本沿着分号分成几行,在前面加上一个美元符号,然后加上空格和引号。我不确定用正则表达式一步就能做到这一点(或者至少我不想考虑正则表达式是什么样子),但您可以通过多个步骤来完成
假设你的数据中不包含引号、等号、分号等,这应该行得通。如果包含引号、等号、分号等,你就必须找出解析规则。听起来你只是想将文本沿着分号分成几行,在前面加上一个美元符号,然后加上空格和引号。我不是你可以用正则表达式一步完成(或者至少我不想考虑正则表达式是什么样子),但是你可以通过多个步骤来完成
假设您的数据中不包含引号、等号、分号等,这应该是可行的。如果数据中包含引号、等号、分号等,则您必须找出解析规则。谢谢:)祝您愉快!!谢谢:)祝你今天愉快!!我没想到。这是另一种方法+我想不起来了。这是另一种方法+1谢谢:)祝你今天愉快!!谢谢:)祝你今天愉快!!