Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Parse error, срочно нужна помощь! 
:(
    Опции темы
artsb
Дата 16.9.2008, 21:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2280
Регистрация: 17.7.2007
Где: центр Вселенной

Репутация: нет
Всего: 64



Всем привет.

Значит был сайт на чистом html. Попросили переписать его на PHP. Я всё сделал, выложил на сервер. Пытаюсь открыть, а он мне пишет:
Код

Parse error: syntax error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /home/uborka-luxru/vvtgroupru/www/classes/ttemplates.php on line 4

Не могу понять, что ему не нравится. Я проверял его на работоспособность у себя на компе на Denwer'е.
Вот 4-я строка:
Код

<?php
class TTemplates
{
    private $TplRootInc;

Помогите плиз!


--------------------
Чем отличается умный человек от мудрого?
Умный - выпутается из любой ситуации.
Мудрый - просто в неё не попадёт.
PM MAIL   Вверх
Sunvas
Дата 16.9.2008, 22:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Соль и сахар
****


Профиль
Группа: Участник
Сообщений: 3388
Регистрация: 12.3.2006
Где: Тосно

Репутация: 8
Всего: 89



Очевидно ошибка не в этом месте. Покажите чуть больше текста, а лучше выложите весь файл.


--------------------
Воспитывая детей по своему образу и подобию, родители почему-то надеются, что они будут лучше их.
PM MAIL   Вверх
artsb
Дата 16.9.2008, 22:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2280
Регистрация: 17.7.2007
Где: центр Вселенной

Репутация: нет
Всего: 64



Вот:
Код

<?php
class TTemplates
{
    private $TplRootInc;
    private $TplRootTpl;
    private $TemplateBuffer;
    private $VarsName = array();
    private $VarsValue = array();
    private $Templates = array();
    private $Includes = array();

    public function __construct($pathinc = '', $pathtpl = '')
    {
            $this->TplRootInc = $_SERVER['DOCUMENT_ROOT'] . '/' . $pathinc;
            $this->TplRootTpl = $_SERVER['DOCUMENT_ROOT'] . '/' . $pathtpl;
    }

    public function SetTplPath($pathtpl = '')
    {
            $this->TplRootTpl = $_SERVER['DOCUMENT_ROOT'] . '/' . $pathtpl;
    }

    public function SetIncPath($pathinc = '')
    {
            $this->TplRootInc = $_SERVER['DOCUMENT_ROOT'] . '/' . $pathinc;
    }

    public function GetTemplate()
    {
        return $this->TemplateBuffer;
    }

    public function PrintTemplate()
    {
        echo $this->TemplateBuffer;
    }

    public function SetVar($name, $value='')
    {
        if(!empty($name))
        {
            $this->VarsName[] = '{var}'.$name.'{/var}';
            $this->VarsValue[] = $value;
        }
    }

    public function SetTemplate($name, $path)
    {
        if(!empty($name)&&!empty($path)) $this->Templates['{template}'.strtolower($name).'{/template}'] = $path;
    }

    public function SetInclude($name, $path)
    {
        if(!empty($name)&&!empty($path)) $this->Includes['{include}'.strtolower($name).'{/include}'] = $path;
    }

    public function Parse($nametemplate)
    {
        $this->TemplateBuffer = $this->TplParse($nametemplate, true);
    }

    private function TplParse($tplname, $parsevars = false)
    {
        $oldtpl='';
        $newtpl='';
        if(!file_exists($this->TplRootTpl . $tplname)) {return '<div class="bold red">Эта страница отсутствует. Возможно, она находится на стадии разработки.</div>';}
        ob_start();
        include($this->TplRootTpl . $tplname);
        $oldtpl = ob_get_clean();

        while(true)
        {
            $PosT = stripos($oldtpl,'{template}');
            $PosI = stripos($oldtpl,'{include}');
            if($PosT === false && $PosI === false) break;
            
            if($PosT === false) $PosT = $PosI + 1;
            if($PosI === false) $PosI = $PosT + 1;

            if($PosT < $PosI)
            {
                if($PosT > 0) $newtpl .= substr($oldtpl, 0, $PosT);
                $PosCT = stripos($oldtpl,'{/template}') + 11;
                $key = substr($oldtpl, $PosT, $PosCT - $PosT);
                $oldtpl = substr_replace($oldtpl, '', 0, $PosCT);
                $newtpl .= $this->TplParse($this->Templates[strtolower($key)]);
            }
            else
            {
                if($PosI > 0) $newtpl .= substr($oldtpl, 0, $PosI);
                $PosCI = stripos($oldtpl,'{/include}') + 10;
                $key = substr($oldtpl, $PosI, $PosCI - $PosI);
                $oldtpl = substr_replace($oldtpl, '', 0, $PosCI);
                if(!file_exists($this->TplRootInc . $this->Includes[strtolower($key)])) 
                {
                $newtpl .= '<div class="bold red">Эта страница отсутствует. Возможно, она находится на стадии разработки.</div>';
                }
                else
                {
                ob_start();
                include($this->TplRootInc . $this->Includes[strtolower($key)]);
                $newtpl .= ob_get_clean();
                }
            }
            $PosT = NULL;
            $PosI = NULL;
        }
        $newtpl .= $oldtpl;
        if($parsevars) $newtpl = str_replace($this->VarsName, $this->VarsValue, $newtpl);
        return $newtpl;
    }
}

$tpl = new TTemplates('includes/', 'templates/');
?>



--------------------
Чем отличается умный человек от мудрого?
Умный - выпутается из любой ситуации.
Мудрый - просто в неё не попадёт.
PM MAIL   Вверх
Sunvas
Дата 16.9.2008, 22:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Соль и сахар
****


Профиль
Группа: Участник
Сообщений: 3388
Регистрация: 12.3.2006
Где: Тосно

Репутация: 8
Всего: 89



Да нет тут никаких ошибок. Проблема в том, что на денвере у Вас стоит PHP 4, а данный код написан на PHP 5. Рекомендую обновить денвер.


--------------------
Воспитывая детей по своему образу и подобию, родители почему-то надеются, что они будут лучше их.
PM MAIL   Вверх
artsb
Дата 16.9.2008, 22:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2280
Регистрация: 17.7.2007
Где: центр Вселенной

Репутация: нет
Всего: 64



Да ладно с этим Denwer'ом. Что исправить нужно, чтобы всё заработало?

Добавлено через 1 минуту и 18 секунд
Может сервер не поддерживает PHP5?


--------------------
Чем отличается умный человек от мудрого?
Умный - выпутается из любой ситуации.
Мудрый - просто в неё не попадёт.
PM MAIL   Вверх
skyboy
Дата 16.9.2008, 22:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 75
Всего: 260



artsb, тебе совсем коротко? замени всякие public, private, protected на var для членов. и удали из заголовков методов. непонятно, зачем ты "переводишь" сайт на PHP с использованием ООП, если даже не прочитал в мануале об отличиях конструкций под 5 версию и под 4.
PM MAIL   Вверх
artsb
Дата 16.9.2008, 22:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2280
Регистрация: 17.7.2007
Где: центр Вселенной

Репутация: нет
Всего: 64



Кстати, у меня Denwer 3. Только что посмотрел, он поддерживает PHP5. Я даже помню какие-то дополнения для РНР устанавливал. Может всётаки у них 4-ка?

Что нужно исправить, чтобы поддерживалось 4-кой?

Добавлено через 3 минуты и 32 секунды
skyboy, я писал так как узнавал из книжек. А в отличия между 4-кой и 5-кой не вникал.
Спасибо. Попробую


--------------------
Чем отличается умный человек от мудрого?
Умный - выпутается из любой ситуации.
Мудрый - просто в неё не попадёт.
PM MAIL   Вверх
artsb
Дата 16.9.2008, 22:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2280
Регистрация: 17.7.2007
Где: центр Вселенной

Репутация: нет
Всего: 64



Ваши советы помогли.
Теперь он говорит, что не знает функцию stripos()
Чем её заменить?

Добавлено через 9 минут и 56 секунд
Уже переделал. Всё работает. Спасибо за помощь. Потом всех отблагодарю.


--------------------
Чем отличается умный человек от мудрого?
Умный - выпутается из любой ситуации.
Мудрый - просто в неё не попадёт.
PM MAIL   Вверх
gta4kv
Дата 16.9.2008, 23:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Walking around mad.
***


Профиль
Группа: Завсегдатай
Сообщений: 1868
Регистрация: 25.7.2006

Репутация: 21
Всего: 91



artsb, поставьте нормальный сервер. денвер это *****. минимум XAMPP(самый нормальный из готовых), в идеале, конечно, ручками собрать. 

А переделывать скрипт под старую версию пхп, когда можно заставить нормально работать с последней, и не отказывацо от private/protected/public/etc - моветон, имхо.

хотя конечно в пределе одного скрипта это врядли пригодиться, только при написание чего нибудь большого smile

Это сообщение отредактировал(а) gta4kv - 16.9.2008, 23:55
PM MAIL   Вверх
skyboy
Дата 17.9.2008, 00:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 75
Всего: 260



gta4kv, я так понял, проблема именно с сервером хостинга.
artsb, учитывая, что к мануалу можно обратиться просто так: php.net/<имя функции или оператора>, то я не думаю, что стОит грешить на отсутствие информации  smile 
PM MAIL   Вверх
gta4kv
Дата 17.9.2008, 00:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Walking around mad.
***


Профиль
Группа: Завсегдатай
Сообщений: 1868
Регистрация: 25.7.2006

Репутация: 21
Всего: 91



Цитата

gta4kv, я так понял, проблема именно с сервером хостинга.

гнать такие хостинги надо! Даешь каждому по выделенному серву smile
PM MAIL   Вверх
artsb
Дата 17.9.2008, 10:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2280
Регистрация: 17.7.2007
Где: центр Вселенной

Репутация: нет
Всего: 64



gta4kv, у хостера стоит 4-ка. И я здесь ничего исправить не могу smile

skyboy, я не говорил об отсутствии информации. Я просто говорил о том, что не вникал в различия между 5-кой и 4-кой, а просто делал всё по имеющейся информации. Как оказалось она относится к 5-ке. И, вообще, я думал, что хостеры обновляют свои сервера smile

Это сообщение отредактировал(а) artsb - 17.9.2008, 10:41


--------------------
Чем отличается умный человек от мудрого?
Умный - выпутается из любой ситуации.
Мудрый - просто в неё не попадёт.
PM MAIL   Вверх
nerezus
Дата 17.9.2008, 10:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вселенский отказник
****


Профиль
Группа: Участник
Сообщений: 3330
Регистрация: 15.6.2005

Репутация: 12
Всего: 43



Цитата

Может сервер не поддерживает PHP5?
 Скорее всего.
Зайди в панель управления аккаунтом и выбери 5 версию. Либо попроси админа перевести аккаунт на другой сервер, если нет такой функции.
Но сейчас уже стали раритетом сервера с PHP4.


--------------------
Сообщество художников Artsociety.ru
PM MAIL WWW   Вверх
artsb
Дата 17.9.2008, 11:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2280
Регистрация: 17.7.2007
Где: центр Вселенной

Репутация: нет
Всего: 64



Цитата(nerezus @  17.9.2008,  10:58 Найти цитируемый пост)
Зайди в панель управления аккаунтом

Не могу. smile
Я просто переделал сайт. У меня есть только ftp адрес и пароль. Хозяева сайта не помнят адрес хостера smile


--------------------
Чем отличается умный человек от мудрого?
Умный - выпутается из любой ситуации.
Мудрый - просто в неё не попадёт.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0566 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.