<untitled> (PHP)

Ревизии: current

Добавил: shurikpris
text/plain
text/html
source
Old rev.:
<!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=windows-1251" />
<title>Парсер</title>
</head>

<body>
<?php

if (isset($_POST['logpass'])){$logpass = $_POST['logpass'];}else{echo "<font color='#FF0000'>Не введен логин и пароль</font><br />";}
if (isset($_POST['rss'])){$rss = $_POST['rss'];}else{echo "<font color='#FF0000'>Не введен файл</font><br />";}
if (isset($_POST['mes'])){$mes = $_POST['mes'];}else{echo "<font color='#FF0000'>Не введен месяц</font><br />";}
if (isset($_POST['god'])){$god = $_POST['god'];}else{echo "<font color='#FF0000'>Не введен год</font><br />";}
if (isset($_POST['day'])){$day = $_POST['day'];}else{echo "<font color='#FF0000'>Не введен день</font><br />";}
if (isset($_POST['ot'])){$ot = $_POST['ot'];}else{echo "<font color='#FF0000'>Не введен диапазон статей</font><br />";}
if (isset($_POST['do'])){$do = $_POST['do'];}else{echo "<font color='#FF0000'>Не введен диапазон статей</font><br />";}
if (isset($_POST['sim'])){$sim = $_POST['sim'];}else{echo "<font color='#FF0000'>Не введено количество символов</font><br />";}

echo '
<div align="center">
<form action="" method="post">
<textarea name="logpass" cols="50" rows="10">'
.$logpass.'</textarea><br /><br />

<label>Название текстового файла</label>
<input size="50px" name="rss" type="text" maxlength="200"  value="'
.$rss.'" />
<br />
<br />
<label>Введите год:</label>
<input name="god" type="text" maxlength="100"  value="'
.$god.'" />
(В формате 2009)
<br />
<br />
<label>Введите месяц:</label>
<input name="mes" type="text" maxlength="100"  value="'
.$mes.'" />
(В формате от 1 до 12)
<br />
<br />
<label>Введите день:</label>
<input name="day" type="text" maxlength="100" value="'
.$day.'" />
(В формате от 1 до 31)
<br />
<br />
<label>Разместить статьи от:</label>
<input name="ot" size="10px" type="text" maxlength="10"  value="'
.$ot.'" />

<label>всего:</label>
<input name="do" size="10px"type="text" maxlength="10"  value="'
.$do.'" />
<br />
<br />
<label>Количество символов:</label>
<input name="sim" type="text" maxlength="100"  value="'
.$sim.'" />
<br />
<br />
<input name="" type="submit" />
</form>

</div>
'
;
function recursive($data)  
 {  
     if (is_array($data))  
     {  
         $d = array();  
         foreach ($data as $k => &$v)  
         {  
             $d[cp1251_to_utf8_recursive($k)] = cp1251_to_utf8_recursive($v);  
         }  
         return $d;  
     }  
     if (is_string($data)) return iconv('cp1251', 'utf-8//IGNORE//TRANSLIT', $data);  
     if (is_scalar($data) or is_null($data)) return $data;  
     #throw warning, if the $data is resource or object:  
    trigger_error('An array, scalar or null type expected, ' . gettype($data) . ' given!', E_USER_WARNING);  
     return $data;  
}

function detectUTF8($string)
{
return preg_match('%(?:
[\xC2-\xDF][\x80-\xBF] # non-overlong 2-byte
|\xE0[\xA0-\xBF][\x80-\xBF] # excluding overlongs
|[\xE1-\xEC\xEE\xEF][\x80-\xBF]{2} # straight 3-byte
|\xED[\x80-\x9F][\x80-\xBF] # excluding surrogates
|\xF0[\x90-\xBF][\x80-\xBF]{2} # planes 1-3
|[\xF1-\xF3][\x80-\xBF]{3} # planes 4-15
|\xF4[\x80-\x8F][\x80-\xBF]{2} # plane 16
)+%xs'
, $string);
}





function split_zag($text)
{
    $k = 0;
    $result = '';
    for ($i = 0; $i < strlen($text); $i++)
    {
        if ($text[$i] == ' ')
        {
            $k++;
            if ($k == 4)
            {
                $result = substr($text, 0, $i);
                break;
            }
        }
    }
    return $result;
}

class UniqueRand
{
    private $from;
    private $to;
    private $allready_used;
    function __construct($from, $to)
    {
        $this->from = $from;
        $this->to = $to;
        $this->allready_used = array();
    }
    public function next()
    {
        $result = "fail";
        if ($this->to - $this->from + 1 == count($this->allready_used))
        {
            return $result;
        }
        while (true)
        {
            $i = mt_rand($this->from, $this->to);
            if (array_search($i, $this->allready_used) === false)
            {
                $result = $i;
                $this->allready_used[] = $result;
                break;
            }
        }

        return $result;
    }
}


function split_rand($text)
{
    $k = 0;
    for ($i = 0; $i < strlen($text); $i++)
    {
        if ($text[$i] == ' ')
        {
            $k++;
            $spaces[] = $i;
        }
    }
    $v=0;
    while ($v <= 10)
    {
    $per = new UniqueRand(1, $k - 2); /*mt_rand(1, $k - 2);*/
    $p = $per->next() ;
    $w = substr($text, $spaces[$p], $spaces[$p + 1]  - $spaces[$p]);
    if (strlen($w) > 5)
    {
        $pattern = "/[,.!@#$%^&*()':;-_]/";
        $replacement = '';
        $tert = preg_replace($pattern, $replacement, $w);
        return strtolower($tert);
    }
    else
    {
        $v++;
    }
    }
}


function split_it($text, $count, $from = 0, $line = 200)
{
    $result = array();
    $k = 0;
    for ($i = 0; $i < strlen($text), count($result) <= $count; $i++)
    {
        if ($k > $line)
        {
            if ($text[$i] == '.')
            {
                if ($from != 0)
                {
                    $from--;
                    $k = 0;
                }
                else
                {
                    $result[] = substr($text, $i - $k, $k + 1);
                    $k = 0;
                }
            }
            else
            {
                $k++;
            }
        }
        else
        {
            $k++;
        }
    }
    return $result;
}


function kodir($text)
{
    $cont = detectUTF8($text);
    if($cont == 0)
    {
         return recursive($text);
    }
    else
    {
        return $text;
    }
}


$contents = file_get_contents($rss);
include('IXR_Library.inc.php');

preg_match_all ("/(.*)\|(.*)/", $logpass, $out, PREG_SET_ORDER);


$a = split_it($contents, $do-1, $ot, $sim);
$ttt = 0;
define('LJ_HOST',   'www.livejournal.com');
define('LJ_PATH',   '/interface/xmlrpc');
define('LJ_LOGIN',  trim($out[$ttt][1]));
define('LJ_PASSWD', trim($out[$ttt][2]));
$ttt++;
$ot += $do;
foreach($a as $b)
{
$r = split_zag($b);
/* echo $r."." . "<br><br>";

 echo $b . "<br><br>";*/

$y = split_rand($b);
$x = split_rand($b);
$z = split_rand($b);
 /*echo $y.",".$x.",".$z . "<br><br><br><br><br><br>";*/
  $tag = kodir($y).",".kodir($x).",".kodir($z);



// Создаем xml-rpc клиента
$ljClient = new IXR_Client(LJ_HOST, LJ_PATH);
 
// Посылаем challange-запрос (что такое - читайте ниже)
if (!$ljClient->query('LJ.XMLRPC.getchallenge')) {
    echo 'Ошибка [' . $ljClient->getErrorpre().'] '.$ljClient->getErrorMessage();
}
else {
    // Получаем ответ
    $ljResponse = $ljClient->getResponse();
    // Вытягиваем challenge
    $ljChallenge = $ljResponse['challenge'];
 
    // Заполняем поля XML-запроса
    $ljArgs = array();
    // Имя пользователя
    $ljArgs['username']       = LJ_LOGIN;
    // Указываем способ идентификации
    $ljArgs['auth_method']    = 'challenge';
    // Указываем полученный challenge
    $ljArgs['auth_challenge'] = $ljChallenge;
    // Посылаем зафрованный пароль
    // формула md5(challenge + md5(password))
    $ljArgs['auth_response']  = md5($ljChallenge . md5(LJ_PASSWD));
    // Версия протокола, 1 - все данные в кодировке UTF-8
    $ljArgs['ver']            = "1";
    // Текст записи (перекодируем из windows-1251 в UTF-8)
    $ljArgs['event']          = kodir($b);
    // Заголовок записи (перекодируем из windows-1251 в UTF-8)
    $ljArgs['subject']        = kodir($r);
 
    // Дата
    $ljArgs['year']           = $god; // год
    $ljArgs['mon']            = $mes; // месяц
    $ljArgs['day']            = $day; // день
    $ljArgs['hour']           = 12; // часы
    $ljArgs['min']            = 00; // минуты
 
    // Доп параметры
    $ljArgs['props']          = array(
                                    // Текст уже отформатирован (содержит HTML-теги)
                                    'opt_preformatted' => false,
                                    // Добавляем запись "задним числом"
                                    'opt_backdated'    => true,
                                    'taglist'          => $tag,
                                );
 
    // Доступность записи - доступна всем (по-умолчанию)
    $ljArgs['security']       = 'public';
 
    // Добавляем новое сообщение
    $ljMethod = 'LJ.XMLRPC.postevent';
 
    // Посылаем запрос
    if (!$ljClient->query($ljMethod, $ljArgs)) {
        echo 'Ошибка ['.$ljClient->getErrorpre().'] '.$ljClient->getErrorMessage();
    }
    else {
        // Получаем ответ
        $ljResponse = $ljClient->getResponse();
        print_r($ljResponse);
    }
}  
echo '<br />';
}

echo '
<form action="next.php" method="post">
<input name="logpass" type="hidden" maxlength="200"  value="'
.$logpass.'"/>
<input name="rss" size="50px" type="hidden" maxlength="200"  value="'
.$rss.'" />
<input name="god" type="hidden" maxlength="100"  value="'
.$god.'" />
<input name="mes" type="hidden" maxlength="100"  value="'
.$mes.'" />
<input name="day" type="hidden" maxlength="100" value="'
.$day.'" />
<input name="ot" size="10px" type="hidden" maxlength="10"  value="'
.$ot.'" />
<input name="do" size="10px"type="hidden" maxlength="10"  value="'
.$do.'" />
<input name="sim" type="hidden" maxlength="100"  value="'
.$sim.'" />
<input name="ttt" type="hidden" maxlength="100"  value="'
.$ttt.'" />
<input name="" type="submit" value="Следующий журнал"/>
</form>

'
;





?>

</body></html>

Комментарии:

Нет