Что бы скрипт брал описание из txt файла

Тема в разделе "PHP", создана пользователем Mitchellzzz, 24 фев 2012.

Модераторы: latteo
  1. Mitchellzzz

    Mitchellzzz Создатель

    Регистр.:
    7 янв 2009
    Сообщения:
    47
    Симпатии:
    1
    Пишет, что ошибка при загрузке файла
    это сам скрипт, строки отметил
    PHP:
    <?php
    $time 
    microtime();
    $time explode(" "$time);
    $time $time[1] + $time[0];
    $start $time;
    ////////////////////////////README////////////////////////////
    // Author of PHP Script: Rolly
    // WebSite of the Project: http://rollyz.net/
    // Name Web Application (PHP Script): GetTags2XML version 1.0 for sapient social submitter (helper) 
    // License: GNU
    // Thanks: KotBazilio
    ////////////////////////////README////////////////////////////
    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    ////////////////////////////RUSSIAN README////////////////////////////
    // Описание: скрипт который облегчает создание XML файла "импорта" предназначеного для программы sapient social submitter.
    // Скрипт вытягивает URL из sitemap.xml файла, что в последствии дает возможность получить мета данные URL's и применить их для программы sapient social submitter, чтобы создать 2import.xml файл.
    // Инструкция: время выполнения скрипта, по умолчанию 600 секунд, если Вам потребуется больше обратитесь к строке: 162 -> set_time_limit(600); и замените 600, на Ваше количество секунд.
    // Благодарности: вы можете установить ссылка на мой ресурс rollyz.net или переслать немного денег по WebMoney:
    // — Z407292316114
    // — U354045620899
    // — R290646762154
    // — E276154191878
    // Спасибо KotBazilio за идею.
    ////////////////////////////RUSSIAN README////////////////////////////
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Get Meta Tags from page -&gt; XML / Helper for sapient social submitter</title>
    <style type="text/css">
    <!--
    body,td,th {
        font-family: Arial, Helvetica, sans-serif;
        font-size: 12px;
    }
    .xml_source {
        font-family: "Lucida Console", Monaco, monospace;
        font-size: 12px;
        color: #333;
        border: 1px dotted #FC0;
        padding: 10px;
        background-color: #FFE89F;
    }
    -->
    </style></head>
    <body>
    Get Meta Tags from page -&gt; XML<br />
    <strong>GetTags2XML</strong> version 1.0 for <strong>sapient social submitter</strong> (helper)
    <form id="form1" name="form1" method="get" action="<?php echo $_SERVER['PHP_SELF']; ?>">
    <fieldset>
      <legend><strong>XML</strong></legend>
      <table width="100%" border="0" cellpadding="3" cellspacing="0">
        <tr>
          <td>Enter URL <strong>sitemap.xml</strong><label>
      <input name="url" type="text" id="url" size="64" />
      <input type="submit" name="button" id="button" value="Create XML" />
    </label></td>
        </tr>
        <tr>
          <td>
    <?php
    // Это в самое начало вне всех циклов.
    $data file("data.txt");
    $n_key_data=0;
    // Определение кодировки
    // tony2001.phpclub.net
    define('LOWERCASE',3);
    define('UPPERCASE',1);
    function 
    detect_cyr_charset($str) {
        
    $charsets = Array(
                          
    'k' => 0,
                          
    'w' => 0,
                          
    'd' => 0,
                          
    'i' => 0,
                          
    'm' => 0
                          
    );
        for ( 
    $i 0$length strlen($str); $i $length$i++ ) {
            
    $char ord($str[$i]);
            
    //non-russian characters
            
    if ($char 128 || $char 256) continue;
            
            
    //CP866
            
    if (($char 159 && $char 176) || ($char 223 && $char 242)) 
                
    $charsets['cp866']+=LOWERCASE;
            if ((
    $char 127 && $char 160)) $charsets['cp866']+=UPPERCASE;
            
            
    //KOI8-R
            
    if (($char 191 && $char 223)) $charsets['Koi8-R']+=LOWERCASE;
            if ((
    $char 222 && $char 256)) $charsets['Koi8-R']+=UPPERCASE;
            
            
    //WIN-1251
            
    if ($char 223 && $char 256$charsets['Win-1251']+=LOWERCASE;
            if (
    $char 191 && $char 224$charsets['Win-1251']+=UPPERCASE;
            
            
    //MAC
            
    if ($char 221 && $char 255$charsets['Mac']+=LOWERCASE;
            if (
    $char 127 && $char 160$charsets['Mac']+=UPPERCASE;
            
            
    //ISO-8859-5
            
    if ($char 207 && $char 240$charsets['UTF-8']+=LOWERCASE;
            if (
    $char 175 && $char 208$charsets['UTF-8']+=UPPERCASE;
            
        }
        
    arsort($charsets);
        return 
    key($charsets);
    }
    function 
    Win2UTF8($string
    {
    $len strlen($string);
    $c208 chr(208);
    $c209 chr(209);

    for (
    $i 0$i $len$i++)
    {
    if (
    $string[$i] != "\n") {
    $c ord($string[$i]);
    if (
    $c <= 127$t .= chr($c);
    elseif (
    $c >= 192 && $c <= 207$t .= $c208.chr($c 48);
    elseif (
    $c >= 208 && $c <= 239$t .= $c208.chr($c 48);
    elseif (
    $c >= 240 && $c <= 255$t .= $c209.chr($c 112);
    elseif (
    $c == 184$t .= $c209.chr(145); // ё
    elseif ($c == 168$t .= $c208.chr(129); // Ё
    else $t .= chr($c);
    }
    else 
    $t .= "";
    }
    return 
    $t;
    }
    function 
    ip_valid_1($val=''
    {
     
    $d explode('.',$val);
     for (
    $x=0$x<4$x++) if (!is_numeric($d[$x])) return false;
     return 
    true;
    }
    function 
    defconvert_win2utf($string)
    {
    if (
    detect_cyr_charset($string) == 'Win-1251')
    {
    // Function for conver Windows (CP1251) to UTF-8
    return Win2UTF8($string);
    }
    else
    {
    return 
    $string;
    }
    }
    $get_url urldecode(htmlspecialchars($_GET['url']));
    $fp = @fopen($get_url,"r");
    if (
    preg_match("/([^>]*)\/sitemap\.xml+$/"$get_url))
    {
    if (
    $fp == false)
    {
    }
    else
    {
    while (!
    feof($fp))
    {
    $page .= fgets($fp4096);

    }
    preg_match_all('/<loc>([^>]*)<\/loc>/si',$page,$xloc);
    // Если Ваш sitemap.xml содержит много страниц, желательно выставить побольше времени на обработку.
    // В этом случае на обработку срипта выделяется 600 секунд, или 10 минут.
    set_time_limit(1600);
    ob_start();
    $count_of_arrk count($xloc[1]);
    echo 
    "<p><b>Number of pages in the processing:</b> ".$count_of_arrk."</p>";
    ?>
    <div class="xml_source">
    &lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;<br />
    &lt;Urls&gt;
    <?php
    foreach ($xloc[1] as $key => $desc) {
    $fp = @fopen($xloc[1][$key],"r");
    if (
    $fp == false)
    {
    die(
    "Страница не отвечает.");
    }
    else
    {
    $paget "";
    while (!
    feof($fp))
    {
    $paget .= fgets($fp4096);
    }
    }
    preg_match('/<title>([^>]*)<\/title>/si',$paget,$xtitle);
    if (empty(
    $tags['description']))
    {
     
    $tags['description']=$data[$n_key_data];
    ++
    $n_key_data;
    }
    $tags get_meta_tags($xloc[1][$key]);
    $tagsf $tags['keywords'];
    if (!empty(
    $tagsf))
    {
    $tagsf         str_replace('_',' ',substr($tagsf,0,-2));
    $tagsf_bs     str_replace(',',' ',$tagsf);
    $tagsf_cs     str_replace(' ',', ',$tagsf_bs);
    $tagsf_cs     str_replace(', , ',', ',$tagsf_cs);
    }
    else
    {
    // Список тегов по умолчанию, если на странице не окажется keywords
    $tagsf_cs "обои,на рабочий,стол,скачать,бесплатно,широкоформатные,HD,девушки,авто,на телефон,для нетбука";
    $tagsf_bs "обои на рабочий стол скачать бесплатно широкоформатные HD девушки авто на телефон для нетбука";

    }
    ?>
    <p>
    &lt;Url&gt;<br />
    &lt;Href&gt;<?php echo $xloc[1][$key]; ?>&lt;/Href&gt;<br />
    &lt;Title&gt;<?php echo defconvert_win2utf(htmlspecialchars($xtitle[1]));?>&lt;/Title&gt;<br />
    &lt;Descr&gt;<?php echo defconvert_win2utf($tags['description']); ?>&lt;/Descr&gt;<br />
    &lt;CommaTags&gt;<?php echo defconvert_win2utf(trim($tagsf_cs)); ?>&lt;/CommaTags&gt;<br />
    &lt;SpaceTags&gt;<?php echo defconvert_win2utf(trim($tagsf_bs)); ?>&lt;/SpaceTags&gt;<br />
    &lt;Notes&gt;<?php echo defconvert_win2utf($tags['author']); ?>&lt;/Notes&gt;<br />
    &lt;/Url&gt;
    </p>
    <?php
        ob_flush
    ();
        
    flush();
        
    usleep(300000);
    ob_clean();
    }
    ob_end_flush();
    fclose($fp);
    ?>
    &lt;/Urls&gt;
    </div>
    <?php
    }
    }
    else
    {
    echo 
    "URL only with sitemap.xml";
    }
    $time microtime();
    $time explode(" "$time);
    $time $time[1] + $time[0];
    $finish $time;
    $totaltime = ($finish $start);
    ?>
    </td>
        </tr>
      </table>
    </fieldset>
    </form>
    <hr width="100%" size="1" />
    <p><a href="http://rollyz.net/get_tags_xml_sss/">GetTags2XML</a> version 1.0 for <a href="http://sapientsubmitter.ru/" target="_blank">sapient social submitter</a> &copy; 2010 <a href="http://rollyz.net/">Rollyz.Net </a>
    <br /><?php printf ("Page generated in %f seconds."$totaltime); ?>
    </p>
    </body>
    </html>
    data.txt
    Но знайте что в документе не может быть меньше строк как минимум столько сколько может быть ссылок без description
    Но знайте что в документе не может быть меньше строк как минимум столько сколько может быть ссылок без дескрипшена
    Но знайте что в документе не может быть меньше строк как минимум столько сколько может быть ссылок без описания
    Но знайте что в документе должно быть строк как минимум столько сколько может быть ссылок без description
    Но знайте что в документе должно быть строк как минимум столько сколько может быть ссылок без дескрипшена
    Но знайте что в документе должно быть строк как минимум столько сколько может быть ссылок без описания
    Но знайте что в текстовом файле не может быть меньше строк как минимум столько сколько может быть ссылок без description
    Но знайте что в текстовом файле не может быть меньше строк как минимум столько сколько может быть ссылок без дескрипшена
    Но знайте что в текстовом файле не может быть меньше строк как минимум столько сколько может быть ссылок без описания
    Но знайте что в текстовом файле должно быть строк как минимум столько сколько может быть ссылок без description
    Но знайте что в текстовом файле должно быть строк как минимум столько сколько может быть ссылок без дескрипшена
    Но знайте что в текстовом файле должно быть строк как минимум столько сколько может быть ссылок без описания
    Но знайте что в файле не может быть меньше строк как минимум столько сколько может быть ссылок без description
    Но знайте что в файле не может быть меньше строк как минимум столько сколько может быть ссылок без дескрипшена
    Но знайте что в файле не может быть меньше строк как минимум столько сколько может быть ссылок без описания
    Но знайте что в файле должно быть строк как минимум столько сколько может быть ссылок без description
    Но знайте что в файле должно быть строк как минимум столько сколько может быть ссылок без дескрипшена
    Но знайте что в файле должно быть строк как минимум столько сколько может быть ссылок без описания
    Но имейте ввиду что в документе не может быть меньше строк как минимум столько сколько может быть ссылок без description
    Но имейте ввиду что в документе не может быть меньше строк как минимум столько сколько может быть ссылок без дескрипшена
    Но имейте ввиду что в документе не может быть меньше строк как минимум столько сколько может быть ссылок без описания
    Но имейте ввиду что в документе должно быть строк как минимум столько сколько может быть ссылок без description
    Но имейте ввиду что в документе должно быть строк как минимум столько сколько может быть ссылок без дескрипшена
    Но имейте ввиду что в документе должно быть строк как минимум столько сколько может быть ссылок без описания
    Но имейте ввиду что в текстовом файле не может быть меньше строк как минимум столько сколько может быть ссылок без description
    Но имейте ввиду что в текстовом файле не может быть меньше строк как минимум столько сколько может быть ссылок без дескрипшена
    Но имейте ввиду что в текстовом файле не может быть меньше строк как минимум столько сколько может быть ссылок без описания
    Но имейте ввиду что в текстовом файле должно быть строк как минимум столько сколько может быть ссылок без description
    Но имейте ввиду что в текстовом файле должно быть строк как минимум столько сколько может быть ссылок без дескрипшена
    Но имейте ввиду что в текстовом файле должно быть строк как минимум столько сколько может быть ссылок без описания
    Но имейте ввиду что в файле не может быть меньше строк как минимум столько сколько может быть ссылок без description
    Но имейте ввиду что в файле не может быть меньше строк как минимум столько сколько может быть ссылок без дескрипшена
    Но имейте ввиду что в файле не может быть меньше строк как минимум столько сколько может быть ссылок без описания
    Но имейте ввиду что в файле должно быть строк как минимум столько сколько может быть ссылок без description
    Но имейте ввиду что в файле должно быть строк как минимум столько сколько может быть ссылок без дескрипшена
    Но имейте ввиду что в файле должно быть строк как минимум столько сколько может быть ссылок без описания
    Но учтите что в документе не может быть меньше строк как минимум столько сколько может быть ссылок без description
    Но учтите что в документе не может быть меньше строк как минимум столько сколько может быть ссылок без дескрипшена
    Но учтите что в документе не может быть меньше строк как минимум столько сколько может быть ссылок без описания
    Но учтите что в документе должно быть строк как минимум столько сколько может быть ссылок без description
    Но учтите что в документе должно быть строк как минимум столько сколько может быть ссылок без дескрипшена
    Но учтите что в документе должно быть строк как минимум столько сколько может быть ссылок без описания
    Но учтите что в текстовом файле не может быть меньше строк как минимум столько сколько может быть ссылок без description
    Но учтите что в текстовом файле не может быть меньше строк как минимум столько сколько может быть ссылок без дескрипшена
    Но учтите что в текстовом файле не может быть меньше строк как минимум столько сколько может быть ссылок без описания
    Но учтите что в текстовом файле должно быть строк как минимум столько сколько может быть ссылок без description
    Но учтите что в текстовом файле должно быть строк как минимум столько сколько может быть ссылок без дескрипшена
    Но учтите что в текстовом файле должно быть строк как минимум столько сколько может быть ссылок без описания
    Но учтите что в файле не может быть меньше строк как минимум столько сколько может быть ссылок без description
    Но учтите что в файле не может быть меньше строк как минимум столько сколько может быть ссылок без дескрипшена
    Но учтите что в файле не может быть меньше строк как минимум столько сколько может быть ссылок без описания
    Но учтите что в файле должно быть строк как минимум столько сколько может быть ссылок без description
    Но учтите что в файле должно быть строк как минимум столько сколько может быть ссылок без дескрипшена
    Но учтите что в файле должно быть строк как минимум столько сколько может быть ссылок без описания
     
  2. uNknownMark

    uNknownMark

    Регистр.:
    22 сен 2007
    Сообщения:
    393
    Симпатии:
    169
    Все просто) У вас сейчас так:
    PHP:
    if (empty($tags['description'])) {
     
    $tags['description']=$data[$n_key_data];
    ++
    $n_key_data;
    }
    $tags get_meta_tags($xloc[1][$key]);
    но $tags формируется после вашего кода.

    Попробуйте так:
    PHP:
    $tags get_meta_tags($xloc[1][$key]);
     
    if (empty(
    $tags['description'])) {
     
    $tags['description']=$data[$n_key_data];
    ++
    $n_key_data;
    }
    Т.е. вы сначала получили те теги что есть, а потом уже проверили и если description пустой то записали значение из файла
     
    Mitchellzzz нравится это.
  3. Mitchellzzz

    Mitchellzzz Создатель

    Регистр.:
    7 янв 2009
    Сообщения:
    47
    Симпатии:
    1
    тайтл пропал и дескрипшен не появился )

    Друзья громадное спасибо - все пашет!!! Скрипт выложу чуть позже под хайдом