Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Интернет » Web-программирование » Тестирование PHP скрипта

Модерирует : Cheery

 Версия для печати • ПодписатьсяДобавить в закладки

Открыть новую тему     Написать ответ в эту тему

yahoo777

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Вот код

Код:
<?php  
  /********************************************************  
   * Class Name : XML-Reader                              *  
   * Publish On : June 20th, 2003                         *  
   * Producer   : Hermawan Haryanto (http://hermawan.com) *  
   * Version    : 1.0                                     *  
   * License    : GPL (General Public License)            *  
   *                                                      *  
   * Credits:                                             *  
   * 1. Hans Anderson (me@hansanderson.com)               *  
   *    http://www.hansanderson.com                       *  
   * 2. John Doe (acebone@f2s.com)                        *  
   ********************************************************/  
 
  class xmlreader {  
    var $_data;  
    var $_white;  
    var $_xml_url;  
    function xmlreader ($xml_url = "")  
    {  
      $this->_white = 1;  
      if (trim($xml_url) != "") $this->set_xml_url ($xml_url);  
    }  
    function set_xml_url ($url)  
    {  
      $this->_xml_url = $url;  
    }  
    function read ()  
    {  
      if (!$this->_xml_url) $this->error ("XML File is not assigned.");  
      $fp = fopen ($this->_xml_url, "r");  
      while (!feof ($fp)) $this->_data .= fgets($fp, 4096);  
      fclose ($fp);  
      $this->_data = trim ($this->_data);  
    }  
    function parse ()  
    {  
      $this->read();  
      if (trim ($this->_data) == "") $this->error ("Data not ready.");  
      $vals = $index = $array = array();  
      $parser = xml_parser_create();  
      xml_parser_set_option($parser, XML_OPTION_CASE_FOLDING, 0);  
      xml_parser_set_option($parser, XML_OPTION_SKIP_WHITE, $this->_white);  
      xml_parse_into_struct($parser, $this->_data, $vals, $index);  
      xml_parser_free($parser);  
      $i = 0;  
      $tagname = $vals[$i]['tag'];  
      if ( isset ($vals[$i]['attributes'] ) )  
      {  
        $array[$tagname]['@'] = $vals[$i]['attributes'];  
      }  
      else  
      {  
        $array[$tagname]['@'] = array();  
      }  
      $array[$tagname]["#"] = $this->xml_depth($vals, $i);  
      return $array;  
    }  
    function xml_depth($vals, &$i) {  
      $children = array();  
      if ( isset($vals[$i]['value']) )  
      {  
        array_push($children, $vals[$i]['value']);  
      }  
      while (++$i < count($vals)) {  
        switch ($vals[$i]['type']) {  
          case 'open':  
            if ( isset ( $vals[$i]['tag'] ) )  
            {  
              $tagname = $vals[$i]['tag'];  
            }  
            else  
            {  
              $tagname = '';  
            }  
            if ( isset ( $children[$tagname] ) )  
            {  
              $size = sizeof($children[$tagname]);  
            }  
            else  
            {  
              $size = 0;  
            }  
            if ( isset ( $vals[$i]['attributes'] ) )  
            {  
              $children[$tagname][$size]['@'] = $vals[$i]["attributes"];  
            }  
            $children[$tagname][$size]['#'] = $this->xml_depth($vals, $i);  
          break;  
          case 'cdata':  
            array_push($children, $vals[$i]['value']);  
          break;  
          case 'complete':  
            $tagname = $vals[$i]['tag'];  
            if( isset ($children[$tagname]) )  
            {  
              $size = sizeof($children[$tagname]);  
            }  
            else  
            {  
              $size = 0;  
            }  
            if( isset ( $vals[$i]['value'] ) )  
            {  
              $children[$tagname][$size]["#"] = $vals[$i]['value'];  
            }  
            else  
            {  
              $children[$tagname][$size]["#"] = '';  
            }  
            if ( isset ($vals[$i]['attributes']) )  
            {  
              $children[$tagname][$size]['@'] = $vals[$i]['attributes'];  
            }              
          break;  
          case 'close':  
            return $children;  
          break;  
        }  
      }  
      return $children;  
    }  
    function traverse_xmlize($array, $arrName = "array", $level = 0) {  
      foreach($array as $key=>$val)  
      {  
        if ( is_array($val) )  
        {  
          traverse_xmlize($val, $arrName . "[" . $key . "]", $level + 1);  
        }  
        else  
        {  
          $GLOBALS['traverse_array'][] = '$' . $arrName . '[' . $key . '] = "' . $val . "\"\n";  
        }  
      }  
      return 1;  
    }  
    function error ($str)  
    {  
      print get_class ($this)." ".$this->version()." => $str";  
      exit();  
    }  
    function version ()  
    {  
      return "1.0";  
    }  
  };  
  // EXAMPLE  
  $xmlurl = "http://hermawan.com/kurs/bca.xml";  
  $xmlreader = new xmlreader ($xmlurl);  
  $xml = $xmlreader->parse();  
  $money = $xml["KURS"]["#"]["MONEY"];  
  print "<pre>";  
  print "<b>Money \tBuy     \tSale</b>\n";  
  for ($i=0; $i<sizeof ($money); $i++)  
  {  
    $matauang = $money[$i];  
    $name = $matauang["@"]["NAME"];  
    $buy  = $matauang["#"]["BUY"][0]["#"];  
    $sale = $matauang["#"]["SALE"][0]["#"];  
    print "$name \t$buy   \t$sale\n";  
  }  
?>  

 
Работает на локалносте.
Работает на сайте с хостингом у ***.net
НЕ Работает на сайте с хостингом у ***.ru
 
Почему?
Может ли быть причина в настройках CHMOD - я эксперементировал может что и напутал (только учусь)
Или проблема в  ***.ru Например скрипт требовательный к ресурсам (а он требовательный??? - я не знаю) - хотя тарифный план Элита - пообещали много.

Всего записей: 103 | Зарегистр. 12-04-2003 | Отправлено: 15:27 29-09-2003 | Исправлено: yahoo777, 15:28 29-09-2003
Nazarius



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
А чего пишет, почему не работает? Или просто молчит?

Всего записей: 107 | Зарегистр. 04-06-2003 | Отправлено: 15:49 29-09-2003
yahoo777

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Просто молчит...
Не грузится...
Вы тестаните скрипт (кстати по-моему очень полезный скрипт)

Всего записей: 103 | Зарегистр. 12-04-2003 | Отправлено: 15:53 29-09-2003
Nazarius



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Что значит не грузится? Белый экран? Или Money u Buy выводит? У меня все сработало. Какой ХТМЛ-код возвращает?

Всего записей: 107 | Зарегистр. 04-06-2003 | Отправлено: 16:01 29-09-2003
yahoo777

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Хотя я уже не думаю что дело в скрипте на локалхосте работает, на хостинге у zenon.net значит дело или в настройках сервера (хотя здесь (о сервере) я просто пальцем в небо - эта тема для меня пока чёрный яшик)
 
Добавлено
Белый экран
код
<HTML></HTML>

Всего записей: 103 | Зарегистр. 12-04-2003 | Отправлено: 16:03 29-09-2003
IntenT



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
yahoo777
Наверняка этот хостер не включил поддержку XML в своем пхп.
Поэтому при выполнении xml_parser_create(); скрипт дохнет.
Поставь в начале скрипта
error_reporting(E_ALL);  
и замени $parser = xml_parser_create();  на
$parser = xml_parser_create() or die("No XML Parser");  
Может это прояснит ситуацию.

Всего записей: 1584 | Зарегистр. 16-12-2001 | Отправлено: 16:23 29-09-2003
yahoo777

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
IntenT
Ничего не меняется
Белый экран  
код  
<HTML></HTML>

Всего записей: 103 | Зарегистр. 12-04-2003 | Отправлено: 16:40 29-09-2003
Nazarius



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
yahoo777
Понатыкивай всюду echo "1,2,3..."
Узнай где именно стопорится программа

Всего записей: 107 | Зарегистр. 04-06-2003 | Отправлено: 16:48 29-09-2003
xntx



хнотик-багоискатель
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
yahoo777

Цитата:
(кстати по-моему очень полезный скрипт)

ничего полезного, помоему лучше 4 строчки стандартной функции а потом данные исопльзовать как тебе угодно...
 
Nazarius
если ошибка в синтактике скрипта, то он и не начнет запускатся, а собственно ничего не выйдет.
 
надо не просто понатыкивать print "stage 1"; print "stage 2";  а еще и  комментировать по чуть-чуть. но так как это готовый скрипт, то IntenT правду говорит:  

Цитата:
Наверняка этот хостер не включил поддержку XML в своем пхп.  



----------
Hello world!

Всего записей: 5169 | Зарегистр. 15-02-2003 | Отправлено: 17:00 29-09-2003
yahoo777

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
2All
<?php phpinfo();?>
Получил
xml
XML Support   active  
XML Namespace Support   active  
EXPAT Version 1.95.2  
 
 
Если ошибка в синтаксисе - почему работает на локалхосте, почему работает на сайте с хостингом у ***.net, а у a***k.ru не работает?  
 
Кроме того почему не выводятся безобидные строки  
<p>index</p>
test2<br>
которые идут ДО <?php //код ?>
 
Добавлено
Закомментировал этот несчастный скрипт.
 
Написал злонамерно
<?php phpinfo);?>  
 
 
Получил
Parse error: parse error in /home/gotoandf/public_html/index.php on line 11
 
Если ошибка в скрипте с которого началась тема - почему PHP молчал?

Всего записей: 103 | Зарегистр. 12-04-2003 | Отправлено: 17:19 29-09-2003
IntenT



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
yahoo777
Попробуй в супорт написать. Может там расскажут что к чему.
ПРоблема точно не в скрипте.

Всего записей: 1584 | Зарегистр. 16-12-2001 | Отправлено: 09:21 30-09-2003
yahoo777

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Уже написал.
Только ответили пока роботы. Письмо получили ждите ответа
Подожду день и - moneyback. Пока месяц для тестирования не истёк.
 

Всего записей: 103 | Зарегистр. 12-04-2003 | Отправлено: 13:40 30-09-2003
IntenT



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
yahoo777
Если такое отношение - не жди день. Сразу меняй хостинг.

Всего записей: 1584 | Зарегистр. 16-12-2001 | Отправлено: 15:03 30-09-2003
Открыть новую тему     Написать ответ в эту тему

Компьютерный форум Ru.Board » Интернет » Web-программирование » Тестирование PHP скрипта


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru