hello I tell them I have the following problem: I have 2 files which is a class in php and the other a script that calls this class and displays the results, the funny thing is that on my computer and localhost works fine on other servers that have php 5.4 also like running, but in hostmonster worked only one day and the next day stopped working, I provide the support and say it's my thing the quue Error code throws me is:
PHP Notice: Undefined variable: result in /home/user/public_html/rox.php on line 25
code the 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>
?>
this code 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;
}
}
?>
thank you very much for your help
first check whether it is defined or not then use
i think because of this $result .= <<<EOF
you are getting the error
require_once('icecast.php');
$oIceCast = new IceCast();
.....
......
if(empty($result))
{
$result = '';
}
.....
.....
$result .= <<<EOF.....
.......
.......
You're trying to append to an existing variable:
$result .= <<<EOF
But $result
does in fact not exist here.
You simple want to create and assign the variable:
$result = <<<EOF