如何在PHP中使用file_get_contents修复404错误?

时间:2015-08-15 01:20:45

标签: php mysql apache .htaccess

当我从htdocs的子文件夹运行以下php文件时,我收到404错误:“在此服务器上找不到请求的URL。”

我们将子文件夹称为“其他”。

当从htdocs文件夹运行相同的文件时,我收到错误:“致命错误:在第12行PHP上的C:\ xampp \ htdocs \ other \ DBConnection.php中找不到类'mysqli'。”

我希望能够从“其他”文件夹成功运行该文件,因为我将使用它来测试多个项目和网站。

我认为问题在于file_get_contents(“http://www.omdbapi.com/?t=Open+Water&y=&plot=full&r=json”)中缺少某些内容;线。即。告诉此命令查看htdocs文件夹,它可以访问互联网或授权它从“其他”文件访问互联网。

我在这里和网上研究但找不到答案。我已经尝试将连接代码移动到“OMDB查询”文件中,但这会产生类似于上面第二个错误的错误。任何人都可以帮我解决这个问题吗?

Windows 10 NetBeans 8.0.2 XAMPP PHP 5.6.8 mySQL 5.6 访问OMDb.com api。

代码:

<?php
/*
 * File: OMDB query.php
 * Author:  Jim Stevens
 * Date: 08/14/2015
 * Description:  Imports records from OMDb and inserts results into local mySQL DB.
 */
require_once 'C:\xampp\htdocs\other\DBConnection.php';
$json = file_get_contents("http://www.omdbapi.com/?t=Open+Water&y=&plot=full&r=json");

// Decodes .json file, creates & populates an associative array.
$data = json_decode($json, TRUE);

// Extracts the array data.
$title = $data['Title'];
$year = $data['Year'];
$rated = $data['Rated'];
...more fields...

// Inserts extracted values into mySQL table 'myDB'.
$sql = "INSERT INTO movies.myDB(title, yr, rated, ...more fields...')";

if ($connection->query($sql) === TRUE) {
echo "New record created successfully";
}
...
?>

DBConnection.php文件存储在“other”文件夹中。它成功连接到“myDB”并按预期工作:

代码:

<?php

/*
 * File: DBConnection.php
 * Author:  Jim Stevens
 * Date: 08/09/2015
 * Description:  Creates and manages myDB database connections.
 */

require_once 'config.php'; // The file with username, password, dbname, & dbhostname.

$connection = new mysqli($dbhost, $dbuser, $dbpass, $dbname);
if ($connection->connect_error) {
    die($connection->connect_error);
}

//  The following works correctly but is a leftover from initial testing and will be removed eventually.
$query = "SELECT * FROM myDB";
$result = $connection->query($query);
if (!$result) {
    die($connection->error);
}
$rows = $result->num_rows;
for ($j=0; $j < $rows; ++$j) {
    $result->data_seek($j);
    $row = $result->fetch_array(MYSQLI_ASSOC);

    echo 'Title: ' . $row['title'] . '<br>';
    echo 'Year: '  . $row['yr']    . '<br>';
    echo 'Rated: ' . $row['rated'] . '<br>';
    echo 'Actors: '. $row['actors']. '<br>';
    echo 'Plot: '  . $row['plot']  . '<br><br>';
}
$result->close();
$connection->close();
?>

1 个答案:

答案 0 :(得分:1)

你的file_get_contents()函数没有任何问题。

在解释器触及此行之前,您收到错误。

正如你的错误输出所说(你真的应该相信它),错误位于你的DBConnection.php文件的第12行,所以:

$connection = new mysqli($dbhost, $dbuser, $dbpass, $dbname);

                  ^ here

您可能没有安装Mysqli。检查Windows上how to install it上的文档,或查看XAMPP的文档。