Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   Ошибки. (https://forum.antichat.xyz/showthread.php?t=74565)

x-demon 22.06.2008 11:14

Ошибки.
 
Пишу типа радиочекер. Должен выводить данные. Но не выводит.
class.cisfmradiostatus.php
Код:

<?php
class RadioChecker {
        function radio_status($fl) {
        include('class.sockets.php');
        $fl = my_file_get_contents('');
        $flarr = explode("Mount Point : ",$fl);
for ($flcnt=1;$flcnt<count($flarr);$flcnt++) {
  $link = substr($flarr[$flcnt],strpos($flarr[$flcnt],"<a href=")+9);
  $link = substr($link,0,strpos($link,"\">"));
Дальше многа регекспов

собственно вызов
Код:

<?php
require_once('class/class.cisfmradiostatus.php');
$objRadio = new RadioChecker();
$objRadio->fl = 'http://r.x-demon.org:8000';
$objRadio->radio_status('fl');
?>

Не выводит на экран данные. Если не использовать классы, а тупо фигачить функцию, все работает. WTF?

x-demon 22.06.2008 11:18

Немного поправил
Код:

<?php
class RadioChecker {
        function radio_status($radioaddr) {
        include('class.sockets.php');
        $fl = my_file_get_contents('$radioaddr');
        $flarr = explode("Mount Point : ",$fl);
for ($flcnt=1;$flcnt<count($flarr);$flcnt++) {
  $link = substr($flarr[$flcnt],strpos($flarr[$flcnt],"<a href=")+9);
  $link = substr($link,0,strpos($link,"\">"));

Код:

<?php
require_once('class/class.cisfmradiostatus.php');
$objRadio = new RadioChecker();
$objRadio->radioaddr = 'http://r.x-demon.org:8000';
$objRadio->radio_status('radioaddr');
?>

Все равно не пашет.

NOmeR1 22.06.2008 11:25

Во-первых, не определена переменная RadioChecker::$fl, во-вторых, к переменных внутри класса надо обращаться так - $this->fl
Что-то типо:
Код:

<?php
class RadioChecker {
        public $fl;
        function radio_status() {
        include('class.sockets.php');
        $contents = file_get_contents($this->fl);
        $flarr = explode("Mount Point : ", $contents);
        for ($flcnt=1; $flcnt<count($flarr); $flcnt++) {
                $link = substr($flarr[$flcnt],strpos($flarr[$flcnt],"<a href=")+9);
                $link = substr($link,0,strpos($link,"\">"));
                ...
        }
        ...
        }
...
}
?>

Вызов вроде этого
Код:

<?php
require_once('class/class.cisfmradiostatus.php');
$objRadio = new RadioChecker();
$objRadio->fl = 'http://r.x-demon.org:8000';
$objRadio->radio_status();
?>

Поправив, ты только добавил ошибки)
my_file_get_contents - функции не существует, а между апострофами нельзя использовать переменные.

Зачем класс использовать, если можно без него?

x-demon 22.06.2008 11:28

my_file_get_contents находится в файле class.sockets.php
это file_get_contents но через сокеты

NOmeR1 22.06.2008 11:29

тогда поправь немного)
Код:

$contents = my_file_get_contents($this->fl);

x-demon 22.06.2008 11:30

@NomeR1, заработало... Ну признаюсь - пхп учу 2 дня.

NOmeR1 22.06.2008 11:32

Цитата:

Сообщение от x-demon
@NomeR1, заработало... Ну признаюсь - пхп учу 2 дня.

Рановато ещё писать классы, если других языков програмирования не знаешь)

x-demon 22.06.2008 11:51

Ansi C учил

x-demon 22.06.2008 11:58

Ладно, другой вопрос - какой класс заюзать для перевода? пытался вот этот
http://www.phpclasses.org/browse/package/3925.html
Но он при вызове $lang->text['currentsong']
(currentsong = Current Song) - обозначено в INI
Выдает Notice: Trying to get property of non-object in Z:\home\radio\www\class\class.icecastparse.php on line 19
['currentsong'] и переменную не меняет


Время: 10:41