Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP加载到MySQL,形成另一个URL_Php_Mysql - Fatal编程技术网

PHP加载到MySQL,形成另一个URL

PHP加载到MySQL,形成另一个URL,php,mysql,Php,Mysql,因此,我试图通过PHP从另一个网站获取一些内容,并将其放入MYSQL。我可以很好地获取数据,但是数据都是无序的,无法想到将其插入MYSQL的方法 以下是我获取数据的代码: <?php $i = 0; $homepage = file_get_contents('http://linesfeed.com/nfl'); preg_match_all( "'<td style=\'width:auto;color:#424241\' align=\'center\' valign=

因此,我试图通过PHP从另一个网站获取一些内容,并将其放入MYSQL。我可以很好地获取数据,但是数据都是无序的,无法想到将其插入MYSQL的方法

以下是我获取数据的代码:

<?php
$i = 0;
$homepage = file_get_contents('http://linesfeed.com/nfl');
preg_match_all(
    "'<td style=\'width:auto;color:#424241\' align=\'center\' valign=\'top\'>([^<]*)</td>'si",
    $homepage, $match
);
foreach ($match[1] as $val) {
    $i++;
    $bracktextnumber = '<text' . $i . '>';
    $bracktextnumberclose = '</text' . $i . '>';
    echo $bracktextnumber . $val . $bracktextnumberclose . '<br>';
}
echo "End";
?>
所以我希望text1(09.05.13)和text11(09.08.13)在MYSQL中作为日期作为它们自己的记录输入。 将文本2(乌鸦)和文本6(野马)添加到与文本1相同的条目中,即日期。 文本12和文本17团队被添加到文本11日期记录中 等等

有几件事。从该URL加载的游戏数量将有所不同,但位置将始终保持不变。所以就像文本1总是一个日期,文本2总是第一队


任何帮助都将不胜感激!特别是如果提供了示例代码:)

Marc B是正确的。但是,有时候你需要一点蛮力。也许Marc B可以提供一个真正的html解析答案

$homepage = file_get_contents('http://linesfeed.com/nfl');
preg_match_all("'(<tr)|<td style=\'width:auto;color:#424241\' align=\'center\' valign=\'top\'>([^<]*)</td>'si", $homepage, $match);
$games = trim( implode('|',$match[2]), "| ");
$games = explode('||', str_replace( '||', '|', $games ));
foreach($games as $key => $game)
{
    $gamedata = explode('|', $game );
    $date  = $gamedatas[0];
    $visit = $gamedata[1];
    $home  = $gamedata[6];
//  insert into games (date,visiting_team,home_team) values( $date, $visit, $home ) ...
}
数据库插入的结果

Array
(
    [0] => 09.05.13|Ravens (Baltimore)|8.0 (-110) |+290|48.5o (-110)|8:35 PM|Broncos (Denver)|-8.0 (-110) |-350|48.5u (-110)
    [1] => 09.08.13|Patriots (NewEngland)|-11.5 (-110) |-630|48.5o (-110)|1:05 PM|Bills (Buffalo)|11.5 (-110) |+465|48.5u (-110)
    [2] => 09.08.13|Titans (Tennessee)|7.0 (-110) |+250|42.0o (-110)|1:05 PM|Steelers (Pittsburgh)|-7.0 (-110) |-300|42.0u (-110)
    [3] => 09.08.13|Falcons (Atlanta)|3.0 (even) |+140|54.5o (-110)|1:05 PM|Saints (NewOrleans)|-3.0 (-120) |-160|54.5u (-110)
    [4] => 09.08.13|Buccaneers (TampaBay)|-3.5 (-110) |-180|40.0o (-110)|1:05 PM|Jets (NewYork)|3.5 (-110) |+160|40.0u (-110)
    [5] => 09.08.13|Chiefs (KansasCity)|-4.0 (-110) |-190|41.0o (-110)|1:05 PM|Jaguars (Jacksonville)|4.0 (-110) |+165|41.0u (-110)
    [6] => 09.08.13|Bengals (Cincinnati)|3.0 (-120) |+130|41.5o (-110)|1:05 PM|Bears (Chicago)|-3.0 (even) |-150|41.5u (-110)
    [7] => 09.08.13|Dolphins (Miami)|0.0 (-110) |OFF|41.0o (-110)|1:05 PM|Browns (Cleveland)|0.0 (-110) |OFF|41.0u (-110)
    [8] => 09.08.13|Seahawks (Seattle)|-3.5 (-115) |-170|45.0o (-110)|1:05 PM|Panthers (Carolina)|3.5 (-105) |+150|45.0u (-110)
    [9] => 09.08.13|Vikings (Minnesota)|5.0 (-110) |+175|46.5o (-110)|1:05 PM|Lions (Detroit)|-5.0 (-110) |-210|46.5u (-110)
    [10] => 09.08.13|Raiders (Oakland)|10.0 (-115) |+350|47.0o (-110)|1:05 PM|Colts (Indianapolis)|-10.0 (-105) |-450|47.0u (-110)
    [11] => 09.08.13|Cardinals (Arizona)|4.5 (-110) |+180|40.0o (-110)|4:30 PM|Rams (StLouis)|-4.5 (-110) |-220|40.0u (-110)
    [12] => 09.08.13|Packers (GreenBay)|4.5 (-110) |+180|48.5o (-110)|4:30 PM|49ers (SanFrancisco)|-4.5 (-110) |-220|48.5u (-110)
    [13] => 09.08.13|Giants (NewYork)|3.0 (-105) |+145|48.5o (-110)|8:35 PM|Cowboys (Dallas)|-3.0 (-115) |-165|48.5u (-110)
    [14] => 09.09.13|Eagles (Philadelphia)|3.5 (-110) |+165|51.0o (-110)|7:15 PM|Redskins (Washington)|-3.5 (-110) |-190|51.0u (-110)
    [15] => 09.09.13|Texans (Houston)|-4.0 (-110) |-200|44.0o (-110)|10:25 PM|Chargers (SanDiego)|4.0 (-110) |+170|44.0u (-110)
)
Date        Visiting Team           Home Team
09.05.13    Ravens (Baltimore)      Broncos (Denver)
09.08.13    Patriots (NewEngland)   Bills (Buffalo)
09.08.13    Titans (Tennessee)      Steelers (Pittsburgh)
09.08.13    Falcons (Atlanta)       Saints (NewOrleans)
09.08.13    Buccaneers (TampaBay)   Jets (NewYork)
09.08.13    Chiefs (KansasCity)     Jaguars (Jacksonville)
09.08.13    Bengals (Cincinnati)    Bears (Chicago)
09.08.13    Dolphins (Miami)        Browns (Cleveland)
09.08.13    Seahawks (Seattle)      Panthers (Carolina)
09.08.13    Vikings (Minnesota)     Lions (Detroit)
09.08.13    Raiders (Oakland)       Colts (Indianapolis)
09.08.13    Cardinals (Arizona)     Rams (StLouis)
09.08.13    Packers (GreenBay)      49ers (SanFrancisco)
09.08.13    Giants (NewYork)        Cowboys (Dallas)
09.09.13    Eagles (Philadelphia)   Redskins (Washington)
09.09.13    Texans (Houston)        Chargers (SanDiego)

INSERT-INTO-table-VALUES()
您不应该在html上使用正则表达式。沿着这条路走下去。哈哈,我知道如何插入到表中。我不知道该如何组织这些收集的数据,以便插入数据。如果您组织这些数据以匹配您的表布局,则可以插入数据。如果你问如何设计你的数据库,那取决于你想做什么以及你将如何使用这些数据。非常感谢!!如果我不知道有多少场比赛呢?我不能只说$date=$vals[0]$team1=$vals[1]$team2=$vals[6]$date2=$VAL[10]$team3=$vals[11]$team4=$vals[16];有没有一种方法可以修改$date=$vals[0+10];如果$VAL[0+10]DNE,则也会中断;我编辑了答案(希望)使它更容易理解。你不需要知道有多少场比赛。$games数组中的每个元素表示一个游戏。foreach循环独立处理每个单独的游戏$date2来自foreach循环第二次迭代的$vals[0](现在是$gamedata[0])。第一个游戏的所有数据都在$games[0]中,第二个游戏的数据在$games[1]中,等等。因此,我从以下代码中得到这个错误:Ok。我很困惑。你犯了什么错误?不要介意。您尚未完成评论。:)您需要在SQL中的文本变量周围加上单引号:$strSQL=“插入游戏(id、日期、运动、团队1、团队2)值(“,$date”,“NFL”,“$Visite”,“$home”)”;MySQL服务器版本,以便在第1行的“.13”、“Ravens(巴尔的摩)、Broncos(丹佛))”附近使用正确的语法。我还附送了$date和$visit,以及$home。只有一张唱片出现了。也许我很困惑,但你不是说这应该抓住所有的日期和游戏吗?
Date        Visiting Team           Home Team
09.05.13    Ravens (Baltimore)      Broncos (Denver)
09.08.13    Patriots (NewEngland)   Bills (Buffalo)
09.08.13    Titans (Tennessee)      Steelers (Pittsburgh)
09.08.13    Falcons (Atlanta)       Saints (NewOrleans)
09.08.13    Buccaneers (TampaBay)   Jets (NewYork)
09.08.13    Chiefs (KansasCity)     Jaguars (Jacksonville)
09.08.13    Bengals (Cincinnati)    Bears (Chicago)
09.08.13    Dolphins (Miami)        Browns (Cleveland)
09.08.13    Seahawks (Seattle)      Panthers (Carolina)
09.08.13    Vikings (Minnesota)     Lions (Detroit)
09.08.13    Raiders (Oakland)       Colts (Indianapolis)
09.08.13    Cardinals (Arizona)     Rams (StLouis)
09.08.13    Packers (GreenBay)      49ers (SanFrancisco)
09.08.13    Giants (NewYork)        Cowboys (Dallas)
09.09.13    Eagles (Philadelphia)   Redskins (Washington)
09.09.13    Texans (Houston)        Chargers (SanDiego)