2012-02-03 4 views
0

私はこの形式である項目のリストがあります:PHPで特定の情報を文字列から抽出するにはどうすればよいですか?

05/01 - いくつかの基本:その後、ここではテキスト(アルファ、ブラボー、Charli)

最初の部分は、日付で、そのいつもの続いて - 。次に、何らかの種類のタイトルまたは場所を表すテキストと、カッコ内にあるかどうかを示すキーワードを入力します。

$タイトルに$タイトル(コロンを含む)と$ keyword1 $ keyword2 $ keyword3がある場合は、それを抽出できます。次に、作成したような個々の変数にそれらをすべて割り当てて、データベースに追加することができます。これらを一度に実行することは素晴らしいスタートですが、最終的には、その形式で複数の項目を貼り付けることができます(スペースや文字を使わずに、すでにそこにあるものと違いをマークして)それらを抽出する。

私はPreg_Match_allとstristr()のようなものを使用しようとしましたが、難しかったです。私は実際にそれらを使って特定の部品を得る方法を理解していません。例えば

$month = stristr($listItem, '/', true); 

echo"$month<br />"; 

$preDay = stristr($listItem, 'The', true); 
echo"$preDay<br />"; 

$day = stristr($preDay, '/', false); 
echo"$day<br />"; 

これだけ出力する:

05 

05/01 – 

/01 – 

は^私は/または任意の奇妙なâ€「を持つことはできません。

実際のコードとこれを行う方法の説明はすばらしいでしょう! pregmatchを使用している場合は、これをどのようにフィルタリングするかの内訳に本当に感謝します。ありがとうございました。

答えて

1

最も簡単な方法は、explode()を使用することです。 explode()関数は、文字列を配列に分割するための速い方法を提供します。マニュアルを参照してください:http://php.net/manual/pt_BR/function.explode.php

この形式の文字列では、次のように配列に分割できます。

$string = '05/01 - Some Basic: Text Here (Alpha, Bravo, Charli)'; 
$array = explode('-',$string); 
$date = $array[0]; //Date 05/01 

$array= explode('(',$array[1]); 
$title = $array[0]; 
$tags = $array[1]; 

//Now you have 
$date = '05/01'; 
$title = 'Some Basic: Text Here'; 
$tags = 'Alpha, Bravo, Charli)'; 

//Notice that the first parenthesis of tags was exploded. 
//This is valid if and only if you have your string in the format 
// [date] - [title] ([tags] 

これが最善の方法であるかどうかわかりませんが、動作します。 preg_split()関数を使用して試すこともできます。この関数は、正規表現を使用して分割を行います。あなたが正規表現の助けが必要な場合はhttp://www.phpf1.com/tutorial/php-regular-expression.html

EDIT 1を参照してください私はあなたの文字列は、この記号が含まれていることに気づいた「 - 」日付の後。これは私が知っているハイフンではありません。マイナス信号を使ってキーボードに書き込む。

あなたのsimbol/mine = - これらは少し異なります。

+1

私はこれを理解し、明確な説明を提供するために時間を割いてくれてありがとう(シンボルのことはまた大きなポイントでした、ありがとう!)。私はそれが働くだろうと思う]。 – Eric

+0

問題が解決した場合はお知らせください。もっと助けが必要な場合は、尋ねてください。 :D –

関連する問題