2012-01-09 5 views

答えて

3

私はちょうどstrstrを使用します。あなたが結果をシフトするか、トリミングしなければならないので、あなたにドットを含む所望の結果を与えるだろう

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

それを取り除く。

例えば:

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

2つの実装を作成し、微小時間(マイクロ秒単位のタイムスタンプ)を持つものを試してみてください。それで、あなたは自分のDBで最速の方法を計算することができます!

0

あなたはexplodeを試すことができますか?

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

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

$result = $collection[1]; 

.他があなたの$collection変数であった場合、これらは文字列が再び分割されることになりますと唯一の問題は次のようになり、私はあなたが$collection = explode('.', $collection, 2);をすれば、その後は起こらないだろうと信じてalthought 。

0

この正規表現を試してみると、あなたのものは動作しません。これは、最速の方法ではないことがあります

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

OPはこれが唯一の小文字に変換文字と一つの追加文字(ドットがエスケープされていない)トリムなり、すべての文字をスキップしたいと考えています。 'database1.collection'のような名前はこの式で' .collection'になります。 – zrvan

1

正規表現は次のようになります。

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

^が対象の開始で、.*\.リテラルのドット文字まで何もマッチします。

文字列中のドットが常にあることを保証いた場合、あなたはまた、文字列関数を使用することができます。

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

私はあなたの正規表現が壊れていると信じています。可能であれば、正規表現は避けるべきです。ここで選択肢がある:

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

コレクション名

関連する問題