-3

こんにちは、サンプルページを作成しました。こちらをご覧ください

イベント名とタイミングを別々に取得したい。誰でも私を助けることができますか?

例えば。ラインから

***ENGLISH* MLB: Philadelphia Phillies at Miami Marlins 12.00am-3.00am Stream 7**

注: **英語は常に変化します...時間は午前、午後によって異なります

下記のようにイベント名、タイミング、ストリーム番号が別途欲しい

MLB: Minnesota Twins at Atlanta Braves
12.00am-3.00am
7

私はもう試した

$game = file_get_contents("http://livestreamly.com/");
preg_match_all('/<font color="gold">(.*?)<p>/',$game,$match);

これにより、ライブ全体が提供されます。私を助けてください。

4

1 に答える 1

2

あなたのサイトを確認しましたが、この正規表現はあなたの問題に有効です

/<\/font>([a-zA-Z0-9\'.: -]+)([0-9]{1,2}.+?[0-9]{1,2}[a,p,A,P,m,M]{2})-([0-9]{1,2}[.:]+?[0-9]{1,2}[a,p,A,P,m,M]{2}) <font color="red">Stream ([0-9]+)<\/font>/

preg_match_all; を使用する場合、 http://regexpal.com/で確認しました。出力配列の一致には、必要な情報が含まれます。この正規表現の一部の文字をエスケープして、php 変数に入れる必要があります。

PHP の有効なコード:

$match = array();
preg_match_all('/<\/font>([a-zA-Z0-9\'.: -]+)([0-9]{1,2}.+?[0-9]{1,2}[a,p,A,P,m,M]{2})-([0-9]{1,2}[.:]+?[0-9]{1,2}[a,p,A,P,m,M]{2}) <font color="red">Stream ([0-9]+)<\/font>/',file_get_contents("http://livestreamly.com/"),$match);
print_r($match);

出力の一部:

[1] => array(37) {
    [0] => string(45) " MLB: Philadelphia Phillies at Miami Marlins "
    [1] => string(40) " MLB: Minnesota Twins at Atlanta Braves "
    [2] => string(39) " MLB: Cincinnati Reds at New York Mets "
[2] => array(37) {
    [0] => string(14) "12.00am-3.00am"
    [1] => string(14) "12.00am-3.00am"
    [2] => string(14) "12.00am-3.00am"
    [3] => string(14) "12:00am-3:00am"
    [4] => string(14) "12.15am-2.15am"
    [5] => string(14) "12.30AM-3.30AM"
[3] => array(37) {
    [0] => string(1) "6"
    [1] => string(1) "7"
    [2] => string(1) "8"
    [3] => string(1) "9"
    [4] => string(2) "10"

使い方

[a-zA-Z0-9'.: -]+最初に、az と AZ の文字、0 から 9 の数字を意味するサブパターンを探します。: または - 少なくとも 1 回以上発生する必要があります。名前が一致します。

 ([0-9]{1,2}.+?[0-9]{1,2})  

後で、数値であり、1 桁または 2 桁の時間の最初の部分を探します。次に、貪欲な演算子を使用して、少なくとも 1 回は任意の文字にすることができます。次に、他の数字 (分) 少なくとも 1 桁または 2 桁。

 [a,p,A,P,m,M]{2}

AM または am または pm または PM を担当し、AA または MM の場合もありますが、ここでは関係ありません。

<font color="red">Stream ([0-9]+)<\/font>

この行は、数値であり、少なくとも 1 桁以上である必要があるストリームのハンバーを取得する責任があります。

于 2013-05-21T08:55:41.337 に答える