rushter Поставь так же без палева на хост заблокированным dl() и без прямого доступа к php.ini mailbrush Выше - куча оберток для пост запросов. Берешь сниффер, в конце концов, и копируешь 1в1 запрос
Tigger PHP: <?php $email = '[email protected]'; $pass = '123'; $from = '1'; $to = '5'; set_time_limit(0); $ua="User-Agent: Mozilla/4.0 (compatible; MSIE 5.01; Widows NT)"; $url = "http://vkontakte.ru/login.php"; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_HEADER, 1); curl_setopt($ch, CURLOPT_USERAGENT, $ua); curl_setopt($ch, CURLOPT_TIMEOUT, 10); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, "success_url=&fail_url=&try_to_login=1&email=$email&pass=$pass"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_COOKIEFILE, "./cook"); curl_setopt($ch, CURLOPT_COOKIEJAR, "./cook"); $res = curl_exec($ch); curl_close($ch); $a = strpos($res, 'OK' ); if ($a > 0) { echo "Незалогинились =(<br>"; exit; } $b = strpos($res, 'Found' ); if ($b > 0) { echo "<b>Удачно залогинились, приступаем к парсингу...</b><br>"; } for($i = $from; $i <= $to; $i++) { $url_p = "http://vkontakte.ru/search.php?id=$i"; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url_p); curl_setopt($ch, CURLOPT_USERAGENT, $ua); curl_setopt($ch, CURLOPT_TIMEOUT, 10); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_COOKIEFILE, "./cook"); curl_setopt($ch, CURLOPT_COOKIEJAR, "./cook"); $res_p = curl_exec($ch); curl_close($ch); preg_match('#<div style=\"overflow: hidden;\">(.*?)</div>#i',$res_p,$name); $id = explode("php?",$url_p); echo $id[1].":".$name[1]."<br>"; } echo "<b>Работа окончена</b>"; ?> Результат: Ну как видиш в первом курле я добавил сохранение кукисов в файл, в втором ети куки читаються, как бы сессия продолжается. Добавил цикл и при помощи регулярки ищу Имена по профилям: PHP: preg_match('#<div style=\"overflow: hidden;\">(.*?)</div>#i',$res_p,$name); Собсна все, думаю понятно. ЗЫ как видиш первые 4 строки ето как бы конфиг: PHP: $email = '[email protected]'; $pass = '123'; $from = '1'; $to = '5'; Мыло и пасс, с которых логиниться. А так же 2 переменные, с какого id начинать и каким заканчивать.
Доброго всем времени суток. Снова прошу помощи у меня опять возникла проблема с $this. PHP: <?php include_once("classes/DBManager.php"); include_once("PEAR.php"); class DBObject { var $DBManager; var $__table; var $__keyColumn; var $data = array(); var $view; var $_isLoaded = false; var $_changedColumns = array(); /** * Constructor * * Creates a new DBObject * if $objectId is specified gets data from database * * @param DBManager &$DBManager instance of DBManager * @param mixed $objectId identity of object instance in database * @access public */ function DBObject(&$DBManager, $objectId=null) { $this->DBManager =& $DBManager; if ($objectId !== null) { $this->objectId = $objectId; $this->get($objectId); } } /** * Gets data of current object from database and put it into class variables * * @param mixed $objectId identity of object instance in database * @access public */ function get($objectId=null, $fieldsArray=array()) { if ($objectId !== null) { $this->objectId = $objectId; } if (is_array($fieldsArray) and sizeof($fieldsArray)>0) { $fieldList = implode(',', $fieldsArray); } else { $fieldList = "*"; } if (isset($this->objectId)) { $this->data = $this->DBManager->SingleRowQuery("SELECT $fieldList FROM `{$this->__table}` WHERE {$this->__table}.{$this->__keyColumn}='{$this->objectId}'"); if ($this->data) { $this->_isLoaded = true; return true; } } return false; } /** * Stores data of current object from class variables into database * * @access public */ function insert() { if (!isset($this->objectId)) { $this->$objectId = $this->generateId(); <<-- строчка с ошибкой } $setClause = $this->_prepareSetClause(); if (strlen($setClause)>0) { $sql = "INSERT INTO `{$this->__table}` SET $setClause "; // echo "$sql<br>"; return $this->DBManager->ExecuteQuery($sql); } return false; } /** * Updates data of current object from class variables into database * * @access public */ function update() { if (isset($this->objectId)) { $setClause = $this->_prepareSetClause(); if (strlen($setClause)>0) { return $this->DBManager->ExecuteQuery("UPDATE `{$this->__table}` SET $setClause WHERE {$this->__table}.{$this->__keyColumn}='{$this->objectId}'"); } } return false; } /** * Deletes current object in database and unsets class variables * * @access public */ function delete() { if (isset($this->objectId)) { return $this->DBManager->ExecuteQuery("DELETE FROM `{$this->__table}` WHERE {$this->__table}.{$this->__keyColumn}='{$this->objectId}'"); } return false; } function getVariable($variableName) { if ($variableName) { if (in_array($variableName, array_keys($this->data))) { return $this->data[$variableName]; } } return null; } function setVariable($variableName, $variableValue) { $this->_changedColumns[] = $variableName; $this->data[$variableName] = $variableValue; } function increaseVariable($variableName, $increaseValue) { $this->setVariable($variableName, $this->getVariable($variableName)+$increaseValue); } function decreaseVariable($variableName, $decreaseValue) { $this->setVariable($variableName, $this->getVariable($variableName)-$decreaseValue); } function removeVariable($variableName) { if ($variableName) { if (in_array($variableName, array_keys($this->data))) { unset($this->data[$variableName]); } } } function isVariableEquals($variableName, $value) { return ($this->getVariable($variableName) == $value); } function generateId() { $id = ''; for( $i=0;$i<9;$i++ ) { $id .= strval(rand(0,9)); } return $id; } function _prepareSetClause() { $setClause = ''; if ($this->_isLoaded) { if (sizeof($this->_changedColumns)>0) { foreach ($this->_changedColumns as $columnName) { if ($columnName != $this->__keyColumn and strval(intval($columnName))!=$columnName) { $setClause .= "{$this->__table}.$columnName = '".mysql_escape_string($this->getVariable($columnName))."',"; } } $setClause = substr($setClause,0,-1); } } else { if (sizeof($this->data)>0) { foreach ($this->data as $columnName=>$columnValue) { if ($columnName != $this->__keyColumn and strval(intval($columnName))!=$columnName) { $setClause .= "{$this->__table}.$columnName = '".mysql_escape_string($columnValue)."',"; } } $setClause = substr($setClause,0,-1); } } return $setClause; } function getView($templateFile="index.html") { // require_once 'HTML/Template/Flexy.php'; /* $flexy = new HTML_Template_Flexy(); if ($flexy->compile($templateFile)===true) { $output = $flexy->bufferedOutputObject($this); } return $output;*/ } function lockTable() { return; } function unlockTable() { return; } function getSystemParam($param) { $SQLQuery = "select $param from system_parameters"; $res = $this->DBManager->SingleRowQuery($SQLQuery); return $res[0]; } function getItemNameField() { $lang = $this->_app_voc->words['LANG']; if ($lang == 'ENG') { return 'name_eng'; } else if ($lang == 'RUS') { return 'name'; } } function getNameField() { $lang = $this->_app_voc->words['LANG']; if ($lang == 'ENG') return 'name_eng'; else if ($lang == 'RUS') return 'name_rus'; } function getDescrField() { $lang = $this->_app_voc->words['LANG']; if ($lang == 'ENG') return 'descr_eng'; else if ($lang == 'RUS') return 'descr_rus'; } function getRaceName($race) { $name_field = $this->getNameField(); $sql = "select $name_field from Alignments where al_name = '$race'"; $name = $this->DBManager->SingleRowQuery($sql); return $name[0]; } function _safe_symbol($text) { $text = str_replace('&', '', $text); return $text; } } ?> подскажите в чём ошибка в строчке $this->$objectId = $this->generateId();
Нужна функция быстрого поиска в файле. Т.е. file_search (string filename, string word) возвращать должна указатель на начало слова в файле в случае совпадения, в случае отсутсвия совпадения - false. вообщем аналог array_search ( mixed needle, array haystack [, bool strict] ) только не для массива а для файла. Условия: 1. максимальная скорость работы после перевода php->exe. 2. отсутсвие органичений на размер оперативной памяти и длинну файла. 3. размер искомого слова не больше 255 байт. 4. как только 1 совпадение найдено поиск прекращается. P.S. Может есть у кого готовая такая?
function file_search($fname, $search) { $fp = fopen($fname, "r"); while(!feof($fp)) { if($search[0]==fread($fp, 1)) for($i=1; $i<strlen($search) && !feof($fp); $i++) if($search[$i]==fread($fp, 1)) ; else break; if($i==strlen($search)-1) die('yes'); } }
Жаль конечно но заглушка ничего хорошего не дала посколько это ошибка указывается в скрипте регестрации то после того как я заглушил её ошибка не высветилась но вообщемто ничего не произошло вообще... просто белое окно браузера... а есть ли ещё какието варианты?
застопорился на таком вопросе: как реализовать брутфорс ЕСЛИ известны первый и последний символ семизначного пароля. спасибо. с меня как всегда +сы
Задача сводится к задаче генерации пятизначного пароля и дополнения известными символами слева и справа...
нужно найти ключ элемента массива по известному элементу. без цикла. PHP: !in_array($var, $vars) ? $vars[] = $var : $vars[ключ элемента $var в массиве $vars][0] +=1; какие варианты?
array_search — Осуществляет поиск данного значения в массиве и возвращает соответствующий ключ в случае удачи Описание mixed array_search ( mixed $needle, array $haystack [, bool $strict] ) Ищет в haystack значение needle и возвращает ключ, если таковое присутствует в массиве, FALSE в противном случае.
Уважаемое сообщество написал функцию для подсчета слов в тексте, отказывается работать и выдает что -то не понятное, при тестировании создается видимость того что ф-ция explode не разбивает строку на слова (через echo просматривал значения массива $parse и видно было что там не слова а строки). Code: <? function WordCounter($w_Arr,$c_Arr){ foreach($w_Arr as $k1=>$val1){ $parse=explode(" ",$val1); foreach($parse as $k2=>$val2){ if(strpos($val1,$val2)) $c_Arr[$val2]++; } } } ?>
PHP: <?php $textarea = "слова слово один десять сто"; $textarea = str_replace("\n", " ", $textarea); $words = explode(" ", $textarea); $count = 0; foreach($words as $word) { if(strlen($word) > 0) $count++; } echo $count; ?> Вот какбы =)
тогда уж: PHP: function words_count($text) { return count(explode(' ', str_replace('\n', ' ', $text))); }
ЧТо то немогу понять.... есть массив $url[] В ней записи вида /23.jpg http://site.com/4.jpg /tr/4.jpg Нужно перебрать все и где нет http://site.com то вставить Пользоваться только strpos .....Кто сможет отхватит+ от меня
kraken Code: for($i=0; i<100; $i++) { if($url[$i][1] == "/") { $url[$i] = "www.mysite.com".$url[$i]; } } если в синтаксисе не ошибся то так