Пример простого php-скрипта

Данный скрипт разбирает загруженный с сайта hostobzor.ru XML-файл экспорта каталога и выводит список торговых марок хостинг-провайдеров и города, где расположены их офисы. Результат работы скрипта можно посмотреть здесь.


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<html>
<head>
    <title>Список хостинг-провайдеров</title>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
</head>
<body style="font-family:Arial; font-size:11pt; padding-left:50">
<h1>Список хостинг-провайдеров,</h1>
<h3>полная информация о которых содержится сейчас в XML-файле экспорта</h3>
<ol>
<?php
function startElement($parser$name$attr){
    global 
$errordata$currentTag;
    
$currentTag $name;
}
    
function 
endElement ($parser$name){
}

function 
characterData ($parser$data){
    global 
$errordata$currentTag$i;
    
    switch (
$currentTag){
        case 
"tm":
            echo 
"<li><b>".$data."</b>";
            break;
        case 
"city":
            echo 
" (".$data.")</li>";
            break;
    }
}

// Инициализация переменных
$file "catalog.xml";
$currentTag "";
$errordata 0;
$i 1;
    
$xml_parser xml_parser_create();
    
xml_set_element_handler($xml_parser"startElement""endElement");
    
xml_set_character_data_handler($xml_parser"characterData");
    
xml_parser_set_option($xml_parserXML_OPTION_CASE_FOLDINGfalse);
    
If (!(
$fp = @fopen($file"r"))) {
    echo 
"Could not open $file for reading&lt;br&gt;";
    continue;
}

while (
$data fread($fp4096)){
    if(!
xml_parse($xml_parser$datafeof($fp))){
        die(
sprintf("XML error at line %d column %d",
        
xml_get_current_line_number($xml_parser),
        
xml_get_current_column_number($xml_parser)));
    }
}
    
xml_parser_free($xml_parser);
@
fclose($fp);
?>
</ol>
</body>
</html>