function CreateDBLinks(){
if(file_exists('dblinks.txt') && is_file('dblinks.txt'))
{
echo $a;
}
else
{
$this->LoadDBLinks();
}
}
Это метод класса, вывожу переменную $a которая ни где внутри класса не описанна ошибки нет.
Почему?
Спустя 20 минут, 53 секунды (11.09.2011 - 13:08) TranceIT написал(а):
Исходя из условия выводиться она должна если существует файл dblinks.txt. Значит его нет.
Сделайте вывод без условия.
А экземпляр класса вы создавали?
Сделайте вывод без условия.
А экземпляр класса вы создавали?
Спустя 7 минут, 48 секунд (11.09.2011 - 13:16) bodja написал(а):
Ну так может ,даже метод не вызывается

Спустя 31 минута, 39 секунд (11.09.2011 - 13:48) Xes написал(а):
Метод вызывается дописал уже туда дальнейший код, работает. Но ошибку по поводу "а" не выдает. Выносил эту строку даже за условие все равно нет ошибки.
function CreateDBLinks(){
echo $a;
if(file_exists('dblinks.txt') && is_file('dblinks.txt'))
{
ob_start();
@readfile('dblinks.txt');
$dblinks = ob_get_clean();
//$dblinks = jeson_decode($dblinks);
echo $dblinks;
}
else
{
$this->LoadDBLinks();
}
}
Спустя 8 минут, 51 секунда (11.09.2011 - 13:57) TranceIT написал(а):
Сделайте нормальный листинг. Чтобы было понятно. как это должно работать. Из приведенного вами у вас ничего выводиться не должно.
Спустя 2 минуты, 56 секунд (11.09.2011 - 14:00) Xes написал(а):
proba.php
<?
$date[] = '2011-10-11';
$idlink[] = '1';
$idlink[] = '2';
$idlink[] = '3';
$idlink[] = '4';
$href[] = 'http://listhotel.ru/gorod.php?goroden=anapa';
$href[] = 'http://listhotel.ru/gorod.php?goroden=adler';
$href[] = 'http://listhotel.ru/gorod.php?goroden=velikiy_ustug';
$href[] = 'http://listhotel.ru/gorod.php?goroden=vladimir';
$title[] = 'Гостиницы Анапы';
$title[] = 'Гостиницы Адлера';
$title[] = 'Гостиницы Великого Устюга';
$title[] = 'Гостиницы Владимира';
$uri = array();
$error = array();
$links = array('idlink' => $idlink, 'href' => $href, 'title' => $title, 'uri' => $uri);
$dblinks = array('date' => $date, 'links' => $links, 'error' => $error);
header('Content-type: text/html; charset=utf-8');
echo json_encode($dblinks);
?>
<?php
class LHLinks{
//Метод создает объект (свойство LHLinks) с БД ссылок из текстового файла либо загружает с listhotel.ru
function CreateDBLinks(){
echo $a;
if(file_exists('dblinks.txt') && is_file('dblinks.txt'))
{
ob_start();
@readfile('dblinks.txt');
$dblinks = ob_get_clean();
$dblinks = json_decode($dblinks);
echo $dblinks->links->title[0];
}
else
{
$this->LoadDBLinks();
}
}
//Метод загружает БД с listhotel.ru
function LoadDBLinks(){
$dblinks = @file_get_contents('http://test1.ru/proba.php');
if($dblinks)
{
//Rонтент получен
$fp = fopen('dblinks.txt', 'a');
if($fp)
{
//Файл открыт в режиме только для записи, создать файл если его нет
flock($fp, LOCK_EX);
ftruncate($fp, 0);
fwrite($fp, $dblinks);
fflush($fp);
flock($fp, LOCK_UN);
fclose($fp);
$this->CreateDBLinks();
}
else
{
//Ошибка открытия файла для записи
}
}
else
{
//Не удалось получить контент
}
}
}
?>
include_once('listhotel.php');
$links = new LHLinks;
$links->CreateDBLinks();
Спустя 12 минут, 8 секунд (11.09.2011 - 14:12) TranceIT написал(а):
У меня только 2 соображения на этот счет. Либо отключен вывод сообщений об ошибках (ERROR_REPORTING) или она где-то определена пустой.
Спустя 14 минут, 1 секунда (11.09.2011 - 14:26) Xes написал(а):
Цитата (TranceIT @ 11.09.2011 - 11:12) |
У меня только 2 соображения на этот счет. Либо отключен вывод сообщений об ошибках (ERROR_REPORTING) или она где-то определена пустой. |
Спасибо уже не первый раз натыкаюсь на такой касяк, забыл что не прописана строка error_reporting(E_ALL);
Спустя 17 часов, 39 минут, 45 секунд (12.09.2011 - 08:05) linker написал(а):
В данном примере, переменная $a является обычной переменной, а не свойством объекта (полем класса). $this->a или self::$a - уже другое дело.