Цитата Сообщение от avt Посмотреть сообщение
В принципе, дело хорошее, но есть проблема.
Если на странице больше одной ссылке, в xml отдается только по одной.
у меня отдается столько сколько есть!!! вот я написал даже небольшую утилитку, может кому пригодится: http://tradskin.ru/linkfeed/

PHP код:
<?php
function get_url_file( $url, $host )
{
    @
$so = fsockopen($host, 80, &$errno, &$errstr, 5); 
    
fputs($so,"GET $url HTTP/1.0\nHOST: $host\n\n"); 
    while(
fgets($so,2048)!="\r\n" && !feof($so)); 
    unset(
$buf); 
    while(!
feof($so)) $buf.=fread($so,2048); 
    
fclose($so); 
    return 
$buf;
}


function 
xml_to_array( $file )
{
    
$parser = xml_parser_create();
    
xml_parser_set_option( $parser, XML_OPTION_CASE_FOLDING, 0 );
    
xml_parser_set_option( $parser, XML_OPTION_SKIP_WHITE, 1 );
    
xml_parse_into_struct( $parser, $file, $tags );
    
xml_parser_free( $parser );
    
    
$elements = array();
    
$stack = array();
    foreach ( 
$tags as $tag )
    {
        
$index = count( $elements );
        if ( 
$tag['type'] == "complete" || $tag['type'] == "open" )
        {
            
$elements[$index] = array();
            
$elements[$index]['name'] = $tag['tag'];
            
$elements[$index]['attributes'] = $tag['attributes'];
            
$elements[$index]['content'] = $tag['value'];
            
            if ( 
$tag['type'] == "open" )
            {    
# push
                
$elements[$index]['children'] = array();
                
$stack[count($stack)] = &$elements;
                
$elements = &$elements[$index]['children'];
            }
        }
        
        if ( 
$tag['type'] == "close" )
        {    
# pop
            
$elements = &$stack[count($stack) - 1];
            unset(
$stack[count($stack) - 1]);
        }
    }
    return 
$elements[0];
}
?>
<html><body>
<?php

    
if(!isset($_GET['site']) || !isset($_GET['user']))
    {

?>
    <center>
    <h2>Анализатор для биржы LinkFeed</h2>
    <FORM ACTION="index.php" METHOD="GET">
    <table align="center" border="0">
        <tr>
            <td><b>Ваш сайт:</b>&nbsp;&nbsp;</td>
            <td><INPUT TYPE="text" name="site" SIZE="30" MAXLENGTH="60"></td>
        </tr>
        <tr>
            <td><b>Идентификатор:</b>&nbsp;&nbsp;</td>
            <td><INPUT TYPE="text" name="user" SIZE="30" MAXLENGTH="60"></td>
        </tr>
        <tr>
            <td colspan="2" align="left"><INPUT TYPE="submit" VALUE="Go!"></td>
        </tr>
    </table>
    </FORM>
    </center>

<?php

    
}
    else
    {

?>
<!--<pre>-->
<?php 

        $site 
= $_GET['site'];
        
$linkfeed_user = $_GET['user'];
        
        
$host = 'db.linkfeed.ru';
        
//$url = "/server/?user=$linkfeed_user&host=$site&charset=utf-8&uri=".$_SERVER['REQUEST_URI'];  
        
$url = "http://db.linkfeed.ru/$linkfeed_user/$site/UTF-8.xml";  
    
        
$arr = xml_to_array( get_url_file( $url, $host ) );


        
$pages = $arr[children][2][children];
        
$links = array();

        foreach (
$pages as $value) {
            
$link = array();
            foreach (
$value[children] as $data) {
                if(
$data[name] == level) continue;
                
$link[] = $data[content];
            }
            
$links[$value[attributes][url]] = $link;
        }
        
//print_r($links);
        
echo "<b>$url:</b><br/>";
        echo 
'<table border = "1">';
        
$i = 0;
        
$links_url = "http://".$host."/server/?user=$linkfeed_user&host=$site&charset=utf-8&uri=";  
        foreach (
$links as $key => $value) {
            
$i++;
            echo 
"<tr><td>$i</td><td>$key</td><td>\n";
            foreach (
$value as $data) {
                echo 
"$data &bull; \n";
            }
            echo 
"</td><td>\n";
            echo 
'<IFRAME WIDTH="500" HEIGHT="40" ALIGN="MIDDLE" SRC="'.$links_url.$key.'" SCROLLING="auto">Error!</IFRAME>';
            echo 
"<td></tr>\n";
        }
        
        echo 
'</table>';

?>
<!--</pre>-->
<?php
    
}
?>
</body></html>