Ошибки.

Discussion in 'PHP' started by x-demon, 22 Jun 2008.

  1. x-demon

    x-demon Elder - Старейшина

    Joined:
    10 Jun 2007
    Messages:
    315
    Likes Received:
    101
    Reputations:
    46
    Пишу типа радиочекер. Должен выводить данные. Но не выводит.
    class.cisfmradiostatus.php
    Code:
    <?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,"\">"));
    Дальше многа регекспов
    собственно вызов
    Code:
    <?php
    require_once('class/class.cisfmradiostatus.php');
    $objRadio = new RadioChecker();
    $objRadio->fl = 'http://r.x-demon.org:8000';
    $objRadio->radio_status('fl');
    ?>
    
    Не выводит на экран данные. Если не использовать классы, а тупо фигачить функцию, все работает. WTF?
     
  2. x-demon

    x-demon Elder - Старейшина

    Joined:
    10 Jun 2007
    Messages:
    315
    Likes Received:
    101
    Reputations:
    46
    Немного поправил
    Code:
    <?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,"\">"));
    
    Code:
    <?php
    require_once('class/class.cisfmradiostatus.php');
    $objRadio = new RadioChecker();
    $objRadio->radioaddr = 'http://r.x-demon.org:8000';
    $objRadio->radio_status('radioaddr');
    ?>
    
    Все равно не пашет.
     
    1 person likes this.
  3. NOmeR1

    NOmeR1 Everybody lies

    Joined:
    2 Jun 2006
    Messages:
    1,068
    Likes Received:
    783
    Reputations:
    213
    Во-первых, не определена переменная RadioChecker::$fl, во-вторых, к переменных внутри класса надо обращаться так - $this->fl
    Что-то типо:
    Code:
    <?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,"\">"));
    		...
    	}
    	...
    	}
    ...
    }
    ?>
    Вызов вроде этого
    Code:
    <?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 - функции не существует, а между апострофами нельзя использовать переменные.

    Зачем класс использовать, если можно без него?
     
    #3 NOmeR1, 22 Jun 2008
    Last edited: 22 Jun 2008
  4. x-demon

    x-demon Elder - Старейшина

    Joined:
    10 Jun 2007
    Messages:
    315
    Likes Received:
    101
    Reputations:
    46
    my_file_get_contents находится в файле class.sockets.php
    это file_get_contents но через сокеты
     
  5. NOmeR1

    NOmeR1 Everybody lies

    Joined:
    2 Jun 2006
    Messages:
    1,068
    Likes Received:
    783
    Reputations:
    213
    тогда поправь немного)
    Code:
    $contents = my_file_get_contents($this->fl);
     
    1 person likes this.
  6. x-demon

    x-demon Elder - Старейшина

    Joined:
    10 Jun 2007
    Messages:
    315
    Likes Received:
    101
    Reputations:
    46
    @NomeR1, заработало... Ну признаюсь - пхп учу 2 дня.
     
  7. NOmeR1

    NOmeR1 Everybody lies

    Joined:
    2 Jun 2006
    Messages:
    1,068
    Likes Received:
    783
    Reputations:
    213
    Рановато ещё писать классы, если других языков програмирования не знаешь)
     
  8. x-demon

    x-demon Elder - Старейшина

    Joined:
    10 Jun 2007
    Messages:
    315
    Likes Received:
    101
    Reputations:
    46
    Ansi C учил
     
  9. x-demon

    x-demon Elder - Старейшина

    Joined:
    10 Jun 2007
    Messages:
    315
    Likes Received:
    101
    Reputations:
    46
    Ладно, другой вопрос - какой класс заюзать для перевода? пытался вот этот
    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'] и переменную не меняет