2012-03-20 1 views
0

PHPとMySQLを使用してWebアプリケーションを開発しています。私のアプリケーションでは、mysqlからFULL-TEXT検索を使って段落を検索するための部分を作成します。例:私のデータベースには、1200文字を含む段落があります。私はクエリ "テスト"を実行し、私の段落の単語 "テスト"は中間の場所にあります。私は、一致する領域でわずか200文字を表示したい。 PHPでこれをどうすればできますか?PHPを使用して段落の一致する文字列を取得するには

は、これはあなたができる何かあなたの構文のいずれかを知らない
+0

まだ試しましたか? –

+0

非常に異なる場所に「テスト」が複数回あるとどうなりますか? – jprofitt

+0

@jprofitt "test"が複数ある場合は、最初の "test"にある200文字を取得したい –

答えて

3

使用するpreg_match( "#( 。{0,100} $ query。{0,100})# "、$ Data from Database、$ matches)。

これは、変数$ matchesを配列に割り当てます。要素[0]には、単語と、検索する単語/フレーズの両側に100文字までを含める必要があります。

+0

ありがとうございました.... –

+0

上記のコードは、私の質問に最大1語あります。 –

+0

助けてください... –

2

です :

$sp=strpos($word,$row['paragraph']); 
echo "...".substr($row['paragraph'],$sp-100,200)."..."; 

それとも、100文字までにしたい場合は、以降100:

$sp=strpos($word,$row['paragraph']); 
echo "...".substr($row['paragraph'],$sp-100,(200+strlen($word)))."..."; 
+0

コードが機能していません –

+0

助けてください –

+0

私はドンあなたのコメントを理解していない。それが1+の単語を持っているならば、単語が段落に戻る限り、それはうまく動作します。 –

関連する問題