如何解析不使用爆炸的信息?

时间:2014-10-29 15:57:19

标签: php parsing explode wikipedia wikipedia-api

我有一些使用维基百科API从维基百科信息框解析的信息。我要解析的一个信息是生日:

$birthdate = "birth_date = {{Birth date|1958|8|29}}"

我希望得到输出如下的birtdate信息:

1958-8-29

在我的考虑中,我可以使用php函数explode,但我认为这是一种非常糟糕的方法,可以在每种情况下获得正确的信息。

我的问题是:

有没有人知道在每种情况下解析生日信息的方法,与其他内容无关? 如果是的话,你能举个例子吗?

1 个答案:

答案 0 :(得分:0)

你可以用正则表达式尝试这个。

$matches = array();
$birthdate = "birth_date = {{Birth date|1958|8|29}}";
preg_match('/^(.*)\|([0-9]{4})\|([0-9]{1,2})\|([0-9]{1,2})}}/is', $birthdate, $matches);
if (!empty($matches[2]) && !empty($matches[3]) && !empty($matches[4])) {
    echo $matches[2]."-".$matches[3]."-".$matches[4];
} else {
    echo 'Not found the parts of the date';
}
//Output is: 1958-8-29