2012-03-26 81 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