2012-03-26 154 views
0

我需要能够在一个字符串中搜索并找出[topic]是否等于一个数字,并且只能从字符串中获取该数字。PHP - 获取字符串中的一小部分字符串,基于条件

例如,像这样的字符串:

[topic]=10[board]=1 

应返回10

但是,像这样的字符串:

[topic][board]=1 

应该返回0或假

的字符串像这样:

[topic]=1.5[board]=2 

应该返回1,因为我们需要向下舍floor()

同时,我们也并不担心负数,导致这绝不会发生。

只有在字符串中存在[topic]并且使用等号定义的情况下,我如何才能这样做,仅从这些类型的字符串中截取数字,四舍五入。

谢谢你们:)

回答

3

的想法下面使用preg_match和正规快件,看起来为“主题”字方括号后跟一个等号内和更多的数字之一。在比赛之前,我设置了主题的默认值(在这种情况下为false)。如果找到主题,我将其转换为整数。

这将忽略小数点后面为\d任何数字只包含数字0到9

例子:

<?php 

$string = '[topic]=10[board]=1'; 

$topic = false; 
if (preg_match('/\[topic\]=(?P<topic>\d+)/', $string, $matches)) { 
    $topic = (int)$matches['topic']; 
} 

var_dump($topic); 
+0

将这项工作,如果我们有这样的...' [topic] = 35.8'应该返回35,'[topic] = 185.0'应该返回185. – SoLoGHoST 2012-03-26 06:53:43

+0

@SoLoGHoST - 是的。 – 2012-03-26 06:54:17

+0

好吧,我相信它可行,谢谢你的帮助! – SoLoGHoST 2012-03-26 06:54:49