你好我告诉他们我有以下问题: 我有2个文件是php中的一个类,另一个是调用这个类并显示结果的脚本,有趣的是,在我的计算机上,localhost在其他服务器上工作正常,这些服务器有php 5.4也喜欢运行,但是在hostmonster中工作只有一天,第二天停止工作,我提供支持,并说我的东西quue错误代码抛出我是:
PHP注意:未定义的变量:导致第25行的/home/user/public_html/rox.php
编码rox.php
<?php
// use the IceCast class to obtain the stream details
require_once('icecast.php');
$oIceCast = new IceCast();
// set server and mount
$server = 'http://giss.tv:8000';
$file = '/status.xsl?mount=/radiosuguaFM.mp3';
$oIceCast->setUrl($server,$file);
$status = $oIceCast->getStatus();
$result .= <<<EOF
<div><strong>Nombre</strong> {$status['title']}</div>
<div><strong>Descripcion</strong> {$status['description']}</div>
<div><strong>Inicio de la transmision</strong> {$status['mount_start']}</div>
<div><strong>Escuchas</strong> {$status['listeners']}</div>
<div><strong>Max escuchas</strong> {$status['most_listeners']}</div>
<div><strong>Url</strong> {$status['url']}</div>
<div><strong>Artista actual</strong> {$status['now_playing']['artist']}</div>
<div><strong>Track actual</strong> {$status['now_playing']['track']}</div>
<audio controls>
<source src="http://giss.tv:8000/radiosuguaFM.mp3">
<!-- This is Where You Enter Your Flash Fall Back -->
</audio>
EOF;
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta property="og:site_name" content="Script Tutorials" />
<meta property="og:title" content="Script to read information from audio stream | Script Tutorials" />
<meta property="og:image" content="http://www.script-tutorials.com/demos/398/thumb.png" />
<meta property="og:type" content="website" />
<meta name="description" content="Script to read information from audio stream - Script Tutorials">
<title>Script to read information from audio stream | Script Tutorials</title>
<link href="css/style.css" rel="stylesheet">
</head>
<body>
<div class="container">
<?= $result ?>
</div><!--/.container-->
</body>
</html>
?>
这个代码de class icecast.php:
<?php
class IceCast {
var $server = '';
var $stats_file = "/status.xsl";
var $radio_info = array();
function __construct() {
//build array to store our radio stats for later use
$this->radio_info['server'] = $this->server;
$this->radio_info['title'] = 'Offline';
$this->radio_info['description'] = 'Radio offline';
$this->radio_info['content_type'] = '';
$this->radio_info['mount_start'] = '';
$this->radio_info['bit_rate'] = '';
$this->radio_info['listeners'] = '';
$this->radio_info['most_listeners'] = '';
$this->radio_info['genre'] = '';
$this->radio_info['url'] = '';
$this->radio_info['now_playing'] = array();
$this->radio_info['now_playing']['artist'] = 'Unknown';
$this->radio_info['now_playing']['track'] = 'Unknown';
}
function setUrl($url,$file) {
$this->server=$url;
$this->stats_file=$file;
$this->radio_info['server'] = $this->server;
}
private function fetch() {
//create a new curl resource
$ch = curl_init();
//set url
curl_setopt($ch,CURLOPT_URL, $this->server . $this->stats_file);
//return as a string
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
//$output = our stauts.xsl file
$output = curl_exec($ch);
//close curl resource to free up system resources
curl_close($ch);
return $output;
}
function getStatus() {
$output = $this->fetch();
//loop through $ouput and sort into our different arrays
$temp_array = array();
$search_for = "<td\s[^>]*class=\"streamdata\">(.*)<\/td>";
$search_td = array('<td class="streamdata">', '</td>');
if (preg_match_all("/$search_for/siU", $output, $matches)) {
foreach ($matches[0] as $match) {
$to_push = str_replace($search_td, '', $match);
$to_push = trim($to_push);
array_push($temp_array, $to_push);
}
}
if (count($temp_array)) {
//sort our temp array into our ral array
$this->radio_info['title'] = $temp_array[0];
$this->radio_info['description'] = $temp_array[1];
$this->radio_info['content_type'] = $temp_array[2];
$this->radio_info['mount_start'] = $temp_array[3];
$this->radio_info['bit_rate'] = $temp_array[4];
$this->radio_info['listeners'] = $temp_array[5];
$this->radio_info['most_listeners'] = $temp_array[6];
$this->radio_info['genre'] = $temp_array[7];
$this->radio_info['url'] = $temp_array[8];
if (isset($temp_array[9])) {
$x = explode(" - ", $temp_array[9]);
$this->radio_info['now_playing']['artist'] = $x[0];
$this->radio_info['now_playing']['track'] = $x[1];
}
}
return $this->radio_info;
}
}
?>
非常感谢你的帮助
答案 0 :(得分:1)
首先检查是否已定义然后使用
我认为由于这个$result .= <<<EOF
你得到了错误
require_once('icecast.php');
$oIceCast = new IceCast();
.....
......
if(empty($result))
{
$result = '';
}
.....
.....
$result .= <<<EOF.....
.......
.......
答案 1 :(得分:1)
您正在尝试将追加添加到现有变量中:
$result .= <<<EOF
但$result
确实在这里不存在
您只需要创建并分配变量:
$result = <<<EOF