2012-01-09 72 views

回答

3

我只想用strstr

$result = strstr($collection, '.'); 

這將使你想要的結果,包括點,所以你必須轉移或修剪結果擺脫它。

例如:

$result = ltrim(strstr($collection, '.'), '.'); 
1

使兩者實現和嘗試那些microtime中(微秒時間戳)。有了這個,你可以用你自己的數據庫來計算最快的方法!

0

你可以嘗試使用爆炸?

http://php.net/manual/en/function.explode.php

$collection = explode('.', $collection); 

$result = $collection[1]; 

唯一的問題是,如果有你的$collection變量其他.是因爲這些將導致字符串來再次分裂,althought我相信,如果你這樣做$collection = explode('.', $collection, 2);則不會發生。

0

試試這個正則表達式,你的一個不起作用。這可能不是最快的方式:

preg_replace('/^[a-z]+./', '', $collection); 
+1

的OP要跳過所有的字符,這樣只會微調是小寫字母,字母和一個額外的字符(點沒有逃脫)。像'database1.collection'這樣的名字會變成帶有這個表達式的'.collection'。 – zrvan 2012-01-09 14:57:48

1

正則表達式是:

$collection = preg_replace('/^.*\./', '', $collection); 

哪裏^爲主題的開始,.*匹配任何東西,直到\.字面點字符。

如果它放心,總有串在一個點,那麼你也可以使用一個字符串函數:

$collection = substr($collection, strpos($collection, ".") + 1); 
0

我相信你的正則表達式是壞了。如果可能,應避免使用正則表達式。這裏是一個另類:

$collection="mongodatabase.collection_name"; 
echo substr($collection,strpos($collection,".")+1); 

COLLECTION_NAME

相關問題