Я получаю данные о погоде из RSS-канала погоды Yahoo для Лондона и Нью-Йорка. Я пытаюсь уменьшить дублирование кода, повторно используя файл PHP, который содержит функции для извлечения данных о погоде.
Ниже приведена функция, которую я вызываю - get_current_weather_data()
. Эта функция отключается для других функций, таких как get_city()
и get_temperature()
.
<?php
function get_current_weather_data() {
// Get XML data from source
include_once 'index.php';
$feed = file_get_contents(if (isset($sourceFeed)) { echo $sourceFeed; });
// Check to ensure the feed exists
if (!$feed) {
die('Weather not found! Check feed URL');
}
$xml = new SimpleXmlElement($feed);
$weather = get_city($xml);
$weather = get_temperature($xml);
$weather = get_conditions($xml);
$weather = get_icon($xml);
return $weather;
}
В моем index.php
я установил URL для канала RSS в качестве переменной с именем $sourceFeed
.
<?php
$tabTitle = ' | Home';
$pageIntroductionHeading = 'Welcome to our site';
$pageIntroductionContent = 'Twinz is a website which has been created to bring towns together!
Our goal is to bring communities around the world together, by providing
information about your home town and its twin town around the world. Our
site provides weather, news and background information for London and
one of its twin cities New York.';
$column1Heading = 'Current Weather for New York';
$column2Heading = 'Current Weather for London';
$column3Heading = 'Current Weather for Paris';
$sourceFeed = "http://weather.yahooapis.com/forecastrss?p=USNY0996&u=f";
include_once 'header.php';
include_once 'navigationMenu.php';
include_once 'threeColumnContainer.php';
include_once 'footer.php';
?>
Я пытаюсь вызвать канал в моей функции get_current_weather_data()
, используя:
(if (isset($sourceFeed)) { echo $sourceFeed; }).
Однако я получаю следующую ошибку
"Warning: file_get_contents() [function.file-get-contents]: Filename cannot be empty in C:\xampp\htdocs\Twinz2\nyWeather.php on line 10
Weather not found! Check feed URL".
Если я заменю
(if (isset($sourceFeed)) { echo $sourceFeed; })
с URL-адресом фида, который он работает, но это не позволит мне повторно использовать код. Я пытаюсь сделать невозможное или мой синтаксис просто неверен?
Этот метод isset
отлично работает, когда используется в других местах, например, $tabTitle
и
$pageIntroductionHeading
переменные просто нужны для RSS-канала.
Спасибо заранее.