http://php.net/manual/ru/function.mail.php ... $headers = 'Content-type: text/html; charset=utf-8' . "\r\n"; $headers .= 'To: Mary <[email protected]>, Kelly <[email protected]>' . "\r\n"; $headers .= 'From: Birthday Reminder <[email protected]>' . "\r\n"; ... mail($to, $subject, $message, $headers);
Code: $a = '<root><div><p></p></div><p></p><br/><span><p></p></span></root>'; $xml = simplexml_load_string($a); $result = $xml->xpath("//*[not(self::div)]/p"); var_dump($result);
AnGeI не надо подсовывать в качестве входных данных невалидный XML. Обрамите код в произвольный тэг: PHP: $a = '<root><div><p>123</p></div>456<p></p><br/><span><p>789</p></span></root>'; $xml = simplexml_load_string($a); $result = $xml->xpath("//*[not(self::div)]/p"); var_dump($result); $a = '<blablabla><div><p>123</p></div>456<p></p><br/><span><p>789</p></span></blablabla>'; $xml = simplexml_load_string($a); $result = $xml->xpath("//*[not(self::div)]/p"); var_dump($result); И не надо выкидывать из xpath символы Koren если очень хочется и не вызывает ошибок синтаксиса - можно, но зачем?
Gifts, теперь все работает. Но мне нужно именно для HTML, в нем не все так гладко как в XML (бывают незакрытые теги), тогда XPath выдает ошибки. Через SimpleHTMLDom не получается спарсить. Полагаю, нужно искать тег <p> и потом проверять его потомков, но как это сделать в документации к SimpleHTMLDom не увидел
искать все <p> и проверять родителя, а не потомка верно? попробуй воспользоваться вот этой информацией (docs, раздел "How to traverse the DOM tree?", вкладка "traverse the DOM tree"): Method Description mixed $e->children ( [int $index] ) Returns the Nth child object if index is set, otherwise return an array of children. element $e->parent () Returns the parent of element. element $e->first_child () Returns the first child of element, or null if not found.
у DOMDocument есть метод loadHTML и можно будет использовать нормальный быстрый xpath, а не обрезанный кстати self:: не надо писать, т.к. self:: is a default axis
парсер музыки вконтакте Парсер ищет, но ссылка на скачку не функционирует как надо - у меня качает пустые файлы mp3 с размером в 0 Мб. помогите пожалуйста поравить здесь, не знаю в чем дело может быть: ??? download.php PHP: <?php include'func.php'; $a1 = $_GET['a1']; $a2 = $_GET['a2']; $a3 = $_GET['a3']; $a4 = str_replace('.','_',$_SERVER['HTTP_HOST']).'_'.str_replace('.','_',str_replace(' ','_',$_GET['a4'])).".mp3"; $file = "http://cs" . $a1 . ".vkontakte.ru/u" . $a2 . "/audio/" . $a3 . ".mp3"; $data = ""; if(file_exists('data/'.$a4)){ header("Location: data/$a4"); exit(); } if($file){ $copy = copy($file,'data/'.$a4); if($copy){ header("Location: data/$a4"); exit(); }else{ echo'Error!'; exit(); } } ?> func.php PHP: <?php function pages($str, $page, $q){ global $self; if(preg_match("/<ul class='pageList'>(.+)<li/is", $str)){ $total = 50; //Сколько выводить страниц $page = empty($page) || $page <= 1 || $page > $total ? 1 : $page; $back1 = '<span class="pages"><a href="'.$self.'?q='.$q.'&page='.($page - 1).'">'.($page - 1).'</a></span>'; $back2 = '<span class="pages"><a href="'.$self.'?q='.$q.'&page='.($page - 2).'">'.($page - 2).'</a></span>'; $back3 = '<span class="pages"><a href="'.$self.'?q='.$q.'&page='.($page - 3).'">'.($page - 3).'</a></span>'; $forw1 = '<span class="pages"><a href="'.$self.'?q='.$q.'&page='.($page + 1).'">'.($page + 1).'</a></span>'; $forw2 = '<span class="pages"><a href="'.$self.'?q='.$q.'&page='.($page + 2).'">'.($page + 2).'</a></span>'; $forw3 = '<span class="pages"><a href="'.$self.'?q='.$q.'&page='.($page + 3).'">'.($page + 3).'</a></span>'; if(empty($page) || $page <= 1){ $minus = ''; $first = ''; }else{ $minus = '<span class="pages"><a href="'.$self.'?q='.$q.'&page='.($page - 1).'" title="Предыдущая">«</a></span>'; $first = '<span class="pages"><a href="'.$self.'?q='.$q.'&page=1" title="Первая страница">««</a></span>'; } if($page == $total){ $plus = ''; $last = ''; }else{ $plus = '<span class="pages"><a href="'.$self.'?q='.$q.'&page='.($page + 1).'" title="Следующая">»</a></span>'; $last = '<span class="pages"><a href="'.$self.'?q='.$q.'&page='.$total.'" title="Последняя страница">»»</a></span>'; } if(($page + 1) > $total) $forw1 = ''; if(($page + 2) > $total) $forw2 = ''; if(($page + 3) > $total) $forw3 = ''; if(($page - 1) <= 0) $back1 = ''; if(($page - 2) <= 0) $back2 = ''; if(($page - 3) <= 0) $back3 = ''; $all_pages = 'Страницы: '.$first.$minus.$back3.$back2.$back1.'<span class="pages"><b>'.$page.'</b></span>'.$forw1.$forw2.$forw3.$plus.$last; return $all_pages; } else return ''; } function rnd_str($str_size=5){ $str=''; $chars= array( 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z' ); for( $i=0; $i<$str_size; $i++ ){ $num= true; if( rand(0,1) == 1 ) $num= false; if($num) $str.= rand(0,9); else $str.= $chars[rand(0,sizeof($chars)-1)]; } return $str; } function old($papka,$times){ $old_time = time()-60*$times; $dir = opendir ($papka); while ($file = readdir ($dir)) { if (( $file != ".") && ($file != "..")) $files[]="$papka/$file"; $time[]=filemtime("$papka/$file" ); } closedir ($dir); $count_files = count($files); for($i = 1; $i< $count_files; $i++){ if($time[$i] <= $old_time){ @unlink($files[$i]); } } } function utf_to_win($str){ $str=strtr($str,array("Р°"=>"а","Р±"=>"б","РІ"=>"в","Рі"=>"г","Рґ"=>"д","Рµ"=>"е","С‘"=>"ё","Р¶"=>"ж","Р·"=>"з","Рё"=>"и","Р№"=>"й","Рє"=>"к","Р»"=>"л","Рј"=>"м","РЅ"=>"н","Рѕ"=>"о","Рї"=>"п","СЂ"=>"р","СЃ"=>"с","С‚"=>"т","Сѓ"=>"у","С„"=>"ф","С…"=>"х","С†"=>"ц","С‡"=>"ч","С€"=>"ш","С‰"=>"щ","СЉ"=>"ъ","С‹"=>"ы","СЊ"=>"ь","СЌ"=>"э","СЋ"=>"ю","СЏ"=>"я", "Рђ"=>"А","Р‘"=>"Б","Р’"=>"В","Р“"=>"Г","Р”"=>"Д","Р•"=>"Е","РЃ"=>"Ё","Р–"=>"Ж","Р—"=>"З","Р?"=>"И","Р™"=>"Й","Рљ"=>"К","Р›"=>"Л","Рњ"=>"М","Рќ"=>"Н","Рћ"=>"О","Рџ"=>"П","Р*"=>"Р","РЎ"=>"С","Рў"=>"Т","РЈ"=>"У","Р¤"=>"Ф","РҐ"=>"Х","Р¦"=>"Ц","Р§"=>"Ч","РЁ"=>"Ш","Р©"=>"Щ","РЄ"=>"Ъ","Р«"=>"Ы","Р¬"=>"Ь","Р*"=>"Э","Р®"=>"Ю","РЇ"=>"Я")); return $str; } function win_to_utf($str){ $str=strtr($str,array("а"=>"Р°","б"=>"Р±","в"=>"РІ","г"=>"Рі","д"=>"Рґ","е"=>"Рµ","ё"=>"С‘","ж"=>"Р¶","з"=>"Р·","и"=>"Рё","й"=>"Р№","к"=>"Рє","л"=>"Р»","м"=>"Рј","н"=>"РЅ","о"=>"Рѕ","п"=>"Рї","р"=>"СЂ","с"=>"СЃ","т"=>"С‚","у"=>"Сѓ","ф"=>"С„","х"=>"С…","ц"=>"С†","ч"=>"С‡","ш"=>"С€","щ"=>"С‰","ъ"=>"СЉ","ы"=>"С‹","ь"=>"СЊ","э"=>"СЌ","ю"=>"СЋ","я"=>"СЏ", "А"=>"Рђ","Б"=>"Р‘","В"=>"Р’","Г"=>"Р“","Д"=>"Р”","Е"=>"Р•","Ё"=>"РЃ","Ж"=>"Р–","З"=>"Р—","И"=>"Р?","Й"=>"Р™","К"=>"Рљ","Л"=>"Р›","М"=>"Рњ","Н"=>"Рќ","О"=>"Рћ","П"=>"Рџ","Р"=>"Р*","С"=>"РЎ","Т"=>"Рў","У"=>"РЈ","Ф"=>"Р¤","Х"=>"РҐ","Ц"=>"Р¦","Ч"=>"Р§","Ш"=>"РЁ","Щ"=>"Р©","Ъ"=>"РЄ","Ы"=>"Р«","Ь"=>"Р¬","Э"=>"Р*","Ю"=>"Р®","Я"=>"РЇ")); return $str; } function encodestring($st) { // Сначала заменяем "односимвольные" фонемы. $st=strtr($st,"абвгдеёзийклмнопрстуфхъыэ_", "abvgdeeziyklmnoprstufh'iei"); $st=strtr($st,"АБВГДЕЁЗИЙКЛМНОПРСТУФХЪЫЭ_", "ABVGDEEZIYKLMNOPRSTUFH'IEI"); // Затем - "многосимвольные". $st=strtr($st, array( "ж"=>"zh", "ц"=>"ts", "ч"=>"ch", "ш"=>"sh", "щ"=>"shch","ь"=>"", "ю"=>"yu", "я"=>"ya", "Ж"=>"ZH", "Ц"=>"TS", "Ч"=>"CH", "Ш"=>"SH", "Щ"=>"SHCH","Ь"=>"", "Ю"=>"YU", "Я"=>"YA", "ї"=>"i", "Ї"=>"Yi", "є"=>"ie", "Є"=>"Ye" ) ); $st = str_replace('$','',$st); $st = str_replace('&','',$st); $st = str_replace('#','',$st); $st = str_replace('!','',$st); $st = str_replace('@','',$st); $st = str_replace('%','',$st); $st = str_replace('*','',$st); $st = str_replace('(','',$st); $st = str_replace(')','',$st); $st = str_replace(';','',$st); $st = str_replace('[','',$st); $st = str_replace(']','_',$st); $st = str_replace('{','_',$st); $st = str_replace('}','_',$st); $st = str_replace('*','_',$st); $st = str_replace('!','',$st); $st = str_replace('&','_',$st); $st = str_replace('^','_',$st); $st = str_replace('~','_',$st); $st = str_replace('?','_',$st); $st = str_replace('+','_',$st); $st = str_replace('>','_',$st); $st = str_replace('<','_',$st); $st = str_replace('"','_',$st); $st = str_replace(',','_',$st); $st = str_replace('.','_',$st); // Возвращаем результат. return $st; } ?> index.php PHP: <?php // Здесь необходимо указать настройки учётных записей на vkontakte.ru, // через которые будет производится поиск // Образец: // // $logins[0]["id"] = "325235"; // $logins[0]["email"] = "[email protected]"; // $logins[0]["pass"] = "sdflksfj"; // // $logins[1]["id"] = "3334235"; // $logins[1]["email"] = "[email protected]"; // $logins[1]["pass"] = "ssoiucvp"; // // и т.д. по образцу, увеличивая индекс //Логины $logins[0]["id"] = "86417076"; $logins[0]["email"] = "[email protected]"; $logins[0]["pass"] = "987654"; //Конец логинов $login_rand = rand(0, count($logins) - 1); $id = $logins[$login_rand]["id"]; $email = $logins[$login_rand]["email"]; $pass = $logins[$login_rand]["pass"]; include'func.php'; echo'<?xml version="1.0" encoding="UTF-8"?>'; echo'<!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN" "http://www.wapforum.org/DTD/xhtml-mobile10.dtd"> <html> <head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>'; $page = $_GET['page']; if ($page == "") {$page = 1;} if ($page < 1) {$page = 1;} if (trim($_GET['search']) != "") { $_GET['search'] = trim($_GET['search']); print($_GET['search'] . " - Поиск музыки по vkontakte.ru"); } else { print("Поиск музыки по vkontakte.ru"); } ?> </title> <style type="text/css"> body { background: #fff; text-align: left; margin: 0px; padding: 0px; font-family: tahoma, verdana, arial, sans-serif, Lucida Sans; font-size: 11px; } a:link { color:#537301; text-decoration:none } a:active { color:#9DB16B; text-decoration:none } a:hover { color:#82B101; text-decoration:none; background:#E7FFA7; border-bottom:solid 1px #FFC184; } </style> </head> <body> <img src=img/audio-logo.jpg> <form method="get" action="index.php" name="audioSearch"> Введите имя исполнители и(или) название песни<br/> <input type="text" name="search" size="15" value="<? print($_GET['search']); ?>" /> <input type="submit" value="Поиск" /> </form> <? $results = ''; $header = 'GET http://vk.com/login.php?email=' . rawurlencode($email) . '&pass=' . rawurlencode($pass) . ' HTTP/1.0 Host: vk.com User-Agent: MedvePoisk Bot '; $fp = fsockopen('vk.com', 80, $errno, $errstr); if(!$fp) { print('Not Connected to Server'); exit; } else { fwrite($fp, $header); while (!feof($fp)) { $results .= fgets ($fp,128); } fclose($fp); } //print($results); $remixsid = substr($results,strpos($results,'remixsid=')+9); $remixsid = substr($remixsid,0,strpos($remixsid,';')); $st = ($page - 1) * 100; $search_string = $_GET['search']; $str = "section=audio&q=" . urlencode($search_string) . "&offset=" . $st; $len_str = strlen($str); $bashka = "POST /gsearch.php HTTP/1.0 Host: vk.com Referrer: http://vk.com/audio.php Cookie: remixsid=$remixsid;remixmid=$id; remixemail=" . urlencode($email) . "; remixpass=" . md5($pass) . " Content-Type: application/x-www-form-urlencoded Content-Length: $len_str $str"; $data = ""; $fp = fsockopen("vk.com", 80, $errno, $errstr); if(!$fp) { print "$errstr ($errno)<br>\n"; exit; } else { fwrite($fp, $bashka); while (!feof($fp)) { $data .= fgets ($fp,128); } fclose($fp); } //print(win_to_utf($data)); print $st; if ($page > 2) { print("<< "); print("<a href='?search=" . $search_string . "&page=" . ($page - 2) . "'>" . ($page - 2) . "</a> "); print("<a href='?search=" . $search_string . "&page=" . ($page - 1) . "'>" . ($page - 1) . "</a> "); print("[" . $page . "] "); print("<a href='?search=" . $search_string . "&page=" . ($page + 1) . "'>" . ($page + 1) . "</a> "); print("<a href='?search=" . $search_string . "&page=" . ($page + 2) . "'>" . ($page + 2) . "</a> "); print(">>"); } else if ($page == 2) { print("<a href='?search=" . $search_string . "&page=" . ($page - 1) . "'>" . ($page - 1) . "</a> "); print("[" . $page . "] "); print("<a href='?search=" . $search_string . "&page=" . ($page + 1) . "'>" . ($page + 1) . "</a> "); print("<a href='?search=" . $search_string . "&page=" . ($page + 2) . "'>" . ($page + 2) . "</a> "); print(">>"); } else if ($page == 1) { print("[" . $page . "] "); print("<a href='?search=" . $search_string . "&page=" . ($page + 1) . "'>" . ($page + 1) . "</a> "); print("<a href='?search=" . $search_string . "&page=" . ($page + 2) . "'>" . ($page + 2) . "</a> "); print(">>"); } ?> <br/> <? $i = -1; while (stripos($data,"operate(") !== false){ $i++; $a[$i][1] = substr($data, stripos($data,"operate(") + 8, 100); $data = substr($data, stripos($data,"operate(") + 50); $a[$i][2] = substr($data, stripos($data,'<b id="performer')); $a[$i][2] = substr($a[$i][2], stripos($a[$i][2],">")+1); $a[$i][3] = substr($a[$i][2], stripos($a[$i][2],"<")); $a[$i][2] = substr($a[$i][2], 0, stripos($a[$i][2],"<")); $a[$i][3] = substr($a[$i][3], stripos($a[$i][3],'<span id="title')); $a[$i][3] = substr($a[$i][3], stripos($a[$i][3],">")+1); if ($a[$i][3][0] == '<') {$a[$i][3] = substr($a[$i][3], stripos($a[$i][3],">")+1);} $a[$i][4] = substr($a[$i][3], stripos($a[$i][3],"<")); $a[$i][3] = substr($a[$i][3], 0, stripos($a[$i][3],"<")); $a[$i][4] = substr($a[$i][4], stripos($a[$i][4],'<div class="duration">')+22); $a[$i][4] = substr($a[$i][4], 0, stripos($a[$i][4],"<")); } $l = $i; for($i = 99; $i<=$l; $i++){ $a[$i][1] = substr($a[$i][1],0,stripos($a[$i][1],")")); $a[$i][1] = substr($a[$i][1],stripos($a[$i][1],",")+1); $a1 = substr($a[$i][1],0,stripos($a[$i][1],",")); $a[$i][1] = substr($a[$i][1],stripos($a[$i][1],",")+1); $a2 = substr($a[$i][1],0,stripos($a[$i][1],",")); $a[$i][1] = substr($a[$i][1],stripos($a[$i][1],",")+1); $a3 = substr($a[$i][1],0,stripos($a[$i][1],",")); $a3 = substr($a3, 1 , strlen($a3)-2); $name = explode(' ',$a[$i][3]); $name = $name[0].' '.$name[1].' '.$name[2]; echo"<a href='" . $a1 . ";" . $a2 . ";" . $a3 . ";" . urlencode(encodestring($a[$i][2])) . " - " . urlencode(encodestring($name)) . ".mp3' title='Скачать: " . win_to_utf($a[$i][2]) . " - " . win_to_utf($a[$i][3]) . " (" . $a[$i][4] . ")'>" . win_to_utf($a[$i][2]) . "-" . win_to_utf($name) . "</a>(" . $a[$i][4] . ")<br/>"; } if ($l == -1) { print "Нет файлов"; } ?> <br/> <? if ($page > 2) { print("<< "); print("<a href='?search=" . $search_string . "&page=" . ($page - 2) . "'>" . ($page - 2) . "</a> "); print("<a href='?search=" . $search_string . "&page=" . ($page - 1) . "'>" . ($page - 1) . "</a> "); print("[" . $page . "] "); print("<a href='?search=" . $search_string . "&page=" . ($page + 1) . "'>" . ($page + 1) . "</a> "); print("<a href='?search=" . $search_string . "&page=" . ($page + 2) . "'>" . ($page + 2) . "</a> "); print(">>"); } else if ($page == 2) { print("<a href='?search=" . $search_string . "&page=" . ($page - 1) . "'>" . ($page - 1) . "</a> "); print("[" . $page . "] "); print("<a href='?search=" . $search_string . "&page=" . ($page + 1) . "'>" . ($page + 1) . "</a> "); print("<a href='?search=" . $search_string . "&page=" . ($page + 2) . "'>" . ($page + 2) . "</a> "); print(">>"); } else if ($page == 1) { print("[" . $page . "] "); print("<a href='?search=" . $search_string . "&page=" . ($page + 1) . "'>" . ($page + 1) . "</a> "); print("<a href='?search=" . $search_string . "&page=" . ($page + 2) . "'>" . ($page + 2) . "</a> "); print(">>"); } ?> </center> </body></html>
GAiN, намного лучше читать, когда код подсвечен, как в func.php. Для этого нужно заменить <? на <?php
Доброго времени суток!Сразу хочу изменится,за то что отнимаю у вас время но возникла проблема.Перед тем как создавать данный пост я погуглил,но ответа не нашол.Собсно сабж.Имеется пхп код PHP: $res_http = new HttpRequest($ARG[s]."/user/register", HttpRequest::METH_POST); поискал тут,сделал все как в инструкции но ничего не получается. А выдает ошибку Code: PHP Parse error: parse error in [I]n[/I]-line Но почему-то не получается.Спасибо за внимание!
пхп выдает ошибку "parse error in N line "? уверены, что все необходимые компоненты для работы класса httpRequest установлены? тут подробнее полный код файла и ошибки приведите, пожалуйста
Нужно разархивировать tar.gz или любой другой архив средствами php. Если у кого-то есть готовые решения (скрипт zlib или любой другой), буду благодарен.
Вроде бы работает. На хостинге есть ограничения, любой скрипт запускается под r-x. Соответственно, создать новый файл не получается, проблема нерешаема?
Дело не в правах у скрипта, дело, скорее всего, в правах веб-сервера на папку, в которой ты хочешь скриптом создавать файл.
Да я установил ПЕКЛ,вроде все правильно сделал. Полный код PHP: { $res_http = new HttpRequest($ARG[s]."/user/register", HttpRequest::METH_POST); $res_http->addPostFields($post_fields); $res_http->addHeaders($headers); try { $response = $res_http->send()->getBody(); if (eregi("success", $response)) { successfully($ARG[u],$ARG[p]); } else { print "[-] Exploit failed"; } } catch (HttpException $exception) { print "[-] Not connected"; exit(0); } } } else { help_argc($argv[0]); exit(0); } ?> Выдает ошибку 2 PHP: $res_http = new HttpRequest($ARG[s]."/user/register", HttpRequest::METH_POST); Пишет Code: PHP Fatal error: Class 'HttpRequest' not found Щас погуглю еще,попытаюсь решить самостоятельно