Что за ошибка парсинга?

Тема в разделе "PHP", создана пользователем Artu, 23 апр 2009.

Статус темы:
Закрыта.
Модераторы: latteo
  1. Artu

    Artu Постоялец

    Регистр.:
    3 мар 2009
    Сообщения:
    75
    Симпатии:
    3
    Проявляется не на всех хостингах.

    Parse error: syntax error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in
    /users/home/network1/user/class.user.php on line 11

    /user/class.user.php:
    Код:
    <?php
    
    //XML class
    class CArray2xml2array {
    
        /*
         * XML Array
         * @var array
         * @access private
         */
        private $XMLArray;//11 строка
    
        /*
         * array is OK
         * @var bool
         * @access private
         */
        private $arrayOK;
    
        /*
         * XML file name
         * @var string
         * @access private
         */
    //......
     
  2. Vicer

    Vicer Прохожие

    при заливке бьется какой нибудь файл скорей всего - попробуйте полностью все перезалить заново.
     
  3. black.cat

    black.cat

    Регистр.:
    13 ноя 2008
    Сообщения:
    203
    Симпатии:
    32
    ниче не бьется.
    просто на некоторых хостингах php4 на нем такое неработает надо писать var $XMLArray;
    а на php5 такая херь прокатит...
     
    Artu нравится это.
  4. Artu

    Artu Постоялец

    Регистр.:
    3 мар 2009
    Сообщения:
    75
    Симпатии:
    3
    black.cat,точно еще public возле function поудалять.

    Добавлено через 12 минут
    Но тут возникла новая ошибка:
    Warning: domdocument() expects parameter 2 to be long, string given in /users/home/network1/user/class.user.php on line 76

    Fatal error: Call to undefined function: createelement() in /users/home/network1/user/class.user.php on line 82

    Код:
    ...
         function saveArray($XMLFile, $rootName="", $encoding="utf-8"){
            global $debug;
            $this->doc = new domdocument("1.0", $encoding); //строка 76
            $arr = array();
            if (count($this->XMLArray) > 1){
                if ($rootName != ""){
                    $root = $this->doc->createElement($rootName);//строка 82
                }else{
                    $root = $this->doc->createElement("root");
                    $rootName = "root";
                }
                $arr = $this->XMLArray;
            }else{
    ...
    Нужно расширение DOMXML,а оно только в PHP5???
     
  5. jik

    jik

    Регистр.:
    11 мар 2009
    Сообщения:
    243
    Симпатии:
    133
    в php.ini закомментируй:

    Код:
    extension=php_domxml.dll 
    и вставь:

    Код:
    extension=php_dom.dll 
     
    Artu нравится это.
  6. black.cat

    black.cat

    Регистр.:
    13 ноя 2008
    Сообщения:
    203
    Симпатии:
    32
    на хостинге с php4? ну... ну...
     
  7. Shurikus84

    Shurikus84 Создатель

    Регистр.:
    21 апр 2009
    Сообщения:
    11
    Симпатии:
    0
    Обычно на хостингах нет доступа к php.ini
    Нужен хостинг с поддержкой php 5 и нужного расширения. На некоторых хостингах есть переключатель с php4 на php5 в контрольной панели, но кроме этого ничего не сделаешь.
    Набор расширений и php.ini сами вы можете менять только на таких тарифных планах где имеете root доступ.
     
  8. jik

    jik

    Регистр.:
    11 мар 2009
    Сообщения:
    243
    Симпатии:
    133
    Определите, какая версия php у вас на сервере. Для этого создайте phpinfo.php и обратитесь к нему.

    phpinfo.php:
    PHP:
    <?
    echo 
    phpinfo();
    ?>
    Расширение DOM позволяет вам оперировать xml-документами в php5.
    Пример использования:

    PHP:
    $sXML '<root><element><key>a</key><value>b</value></element></root>';
    $dom= new DOMDocument();
    $doc->loadXML($sXML);
    В php4 используйте расширение DOM XML. Пример использования:

    PHP:
    $showfile file_get_contents('c:/windows/system32/passwords.xml');
    $newstring=utf8_encode($showfile);
    if(!
    $domDocument domxml_open_mem($newstring)) {
       echo 
    "Не могу загрузить xml...";    
       exit;
    }
    $rootDomNode $domDocument->document_element();
     
Статус темы:
Закрыта.