
30.01.2010, 03:14
|
|
Участник форума
Регистрация: 01.01.2009
Сообщений: 138
С нами:
9135251
Репутация:
82
|
|
мб тупой вопрос, но если есть допустим слово q1w2e3r4 и нужно перевести его в масссив так чтобы каждая буква стала элементом масссива попорядку?
|
|
|

30.01.2010, 06:17
|
|
Постоянный
Регистрация: 26.03.2008
Сообщений: 311
С нами:
9540826
Репутация:
479
|
|
Сообщение от Vlad&slav
мб тупой вопрос, но если есть допустим слово q1w2e3r4 и нужно перевести его в масссив так чтобы каждая буква стала элементом масссива попорядку?
строка это уже и есть как бы массив:
echo $str[0];
или же можно так.
PHP код:
echo '<pre>';
$str='q1w2e3r4';
$str=str_split($str);
print_r($str);
echo '</pre>';
Последний раз редактировалось #Wolf#; 30.01.2010 в 06:48..
|
|
|

30.01.2010, 08:07
|
|
Познающий
Регистрация: 27.09.2008
Сообщений: 67
С нами:
9273736
Репутация:
8
|
|
нужна функция крторая вытащит из переменной строку по шаблону(например чтоб ватаскивал строку которая начинаяться с 123).
|
|
|

30.01.2010, 08:29
|
|
Участник форума
Регистрация: 20.04.2007
Сообщений: 174
С нами:
10030823
Репутация:
149
|
|
Сообщение от Jazz
нужна функция крторая вытащит из переменной строку по шаблону(например чтоб ватаскивал строку которая начинаяться с 123).
регулярные выражения?
PHP код:
if (preg_match('/^123(.*)/i', $mystring, $match)) {echo 'Строка начинающаяся с 123: '.$match;}
как то так.
|
|
|

30.01.2010, 09:51
|
|
Новичок
Регистрация: 10.01.2007
Сообщений: 16
С нами:
10174902
Репутация:
2
|
|
Нужна помощь с рандомным перебором проксей, вот исхордный код
PHP код:
$match='#https?://([^/\s]+)\S+#i';
preg_match_all($match, $_POST['urls'], $matches);
$matches = array_values(array_combine($matches[1],$matches[0]));
$mh = curl_multi_init(); //Create multithread
$handles = array();
$useragent="Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1"; // set user agent
//File with proxies to array
$proxyarr = file('http://localhost/checkproxy/proxies.txt', FILE_IGNORE_NEW_LINES);
//echo $proxyarr[array_rand($proxyarr, 1)]."<br>";
for ($i=0; $i<sizeof($matches);$i++) {
//Create URL
$request = 'someurl';
// create a new single curl handle
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $request);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 600);
curl_setopt($ch, CURLOPT_USERAGENT, $useragent);
// add this handle to the multi handle
curl_multi_add_handle($mh,$ch);
// put the handles in an array to loop this later on
$handles[] = $ch;
}
// execute the multi handle
$running=null;
do {
curl_multi_exec($mh,$running);
// added a usleep for 0.25 seconds to reduce load
usleep (25000);
} while ($running > 0);
// get the content of the urls (if there is any)
for($i=0;$i<count($handles);$i++) {
$output = unserialize(curl_multi_getcontent($handles[$i]));
//ban check
if (!isset($output[ResultSet][totalResultsAvailable])) {
echo "<b>BAN</b><br>";
echo "$request";
exit(0);
}
$result[$matches[$i]]=$output[ResultSet][totalResultsAvailable];
curl_multi_remove_handle($mh,$handles[$i]);
}
Скрипт ходит по http и дергает URL, который отдает ему массив.
Но сам ресурс имеет свойство периодически банить по IP, для этого и нужны прокси.
Я бы с удовольствием воткнул в цикл
Код:
for($i=0;$i<count($handles);$i++)
нечто вроде
Код:
curl_setopt($ch, CURLOPT_PROXY, $proxyarr[array_rand($proxyarr, 1)]);
и у меня даеже есть проверка на бан
Код:
if (!isset($output[ResultSet][totalResultsAvailable]))
но как сделать так, чтобы в случае бана он сделал для этого же урл новую итерацию забора контента, но уже с новой рандомной проксей из того же массива $proxyarr? Стоит также учесть тот момент, что на следующей прокси результата тоже может не быть и прокси надо перебирать до победного.
Я сам вижу лишь вариант в добавлением неуспешных элементов(урлов) в спец массив и повторным прогоном их с рандомными проксям, но решение кривовато.
Последний раз редактировалось Nosfer; 30.01.2010 в 09:55..
|
|
|

31.01.2010, 10:10
|
|
Новичок
Регистрация: 10.01.2007
Сообщений: 16
С нами:
10174902
Репутация:
2
|
|
Сообщение от Nosfer
Нужна помощь с рандомным перебором проксей, вот исхордный код
PHP код:
$match='#https?://([^/\s]+)\S+#i';
preg_match_all($match, $_POST['urls'], $matches);
$matches = array_values(array_combine($matches[1],$matches[0]));
$mh = curl_multi_init(); //Create multithread
$handles = array();
$useragent="Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1"; // set user agent
//File with proxies to array
$proxyarr = file('http://localhost/checkproxy/proxies.txt', FILE_IGNORE_NEW_LINES);
//echo $proxyarr[array_rand($proxyarr, 1)]."<br>";
for ($i=0; $i<sizeof($matches);$i++) {
//Create URL
$request = 'someurl';
// create a new single curl handle
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $request);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 600);
curl_setopt($ch, CURLOPT_USERAGENT, $useragent);
// add this handle to the multi handle
curl_multi_add_handle($mh,$ch);
// put the handles in an array to loop this later on
$handles[] = $ch;
}
// execute the multi handle
$running=null;
do {
curl_multi_exec($mh,$running);
// added a usleep for 0.25 seconds to reduce load
usleep (25000);
} while ($running > 0);
// get the content of the urls (if there is any)
for($i=0;$i<count($handles);$i++) {
$output = unserialize(curl_multi_getcontent($handles[$i]));
//ban check
if (!isset($output[ResultSet][totalResultsAvailable])) {
echo "<b>BAN</b><br>";
echo "$request";
exit(0);
}
$result[$matches[$i]]=$output[ResultSet][totalResultsAvailable];
curl_multi_remove_handle($mh,$handles[$i]);
}
Скрипт ходит по http и дергает URL, который отдает ему массив.
Но сам ресурс имеет свойство периодически банить по IP, для этого и нужны прокси.
Я бы с удовольствием воткнул в цикл
Код:
for($i=0;$i<count($handles);$i++)
нечто вроде
Код:
curl_setopt($ch, CURLOPT_PROXY, $proxyarr[array_rand($proxyarr, 1)]);
и у меня даеже есть проверка на бан
Код:
if (!isset($output[ResultSet][totalResultsAvailable]))
но как сделать так, чтобы в случае бана он сделал для этого же урл новую итерацию забора контента, но уже с новой рандомной проксей из того же массива $proxyarr? Стоит также учесть тот момент, что на следующей прокси результата тоже может не быть и прокси надо перебирать до победного.
Я сам вижу лишь вариант в добавлением неуспешных элементов(урлов) в спец массив и повторным прогоном их с рандомными проксям, но решение кривовато.
Ребят, скажите плс в каком направлении направить поток мыслей 
|
|
|

31.01.2010, 10:15
|
|
Участник форума
Регистрация: 20.04.2007
Сообщений: 174
С нами:
10030823
Репутация:
149
|
|
Сообщение от Nosfer
Ребят, скажите плс в каком направлении направить поток мыслей 
Думаю направить в сторону:
PHP код:
while(true) {
//...
//...
if ($stop) {break;}
}
|
|
|

30.01.2010, 16:42
|
|
Участник форума
Регистрация: 24.08.2009
Сообщений: 145
С нами:
8797036
Репутация:
17
|
|
Banderos_Russia
Вот пример с кнопкой,если надо примерно так же и с ссылкой будет:
Код:
<input type="checkbox" name="test" onclick="document.form.submit.disabled=false;" value="0">
<input type="submit" name="submit" disabled value="Example" />
-=-
Мне тоже нужна помощь,в общем делаю авторизацию/регистрацию
С регистрацией,все на ура,но вот с авторизацией проблема в частности с тем,что не получается проверить валидность пароля
Вот такой у меня код:
PHP код:
<?php
include("uconfig.php");
if(!isset($_POST['usubmit']))
{
$ustatus='<font color="red">Форма входа пользователей</font>';
}
else
{
$login=$_POST['ulogin'];
$password=md5($_POST['upassword']);
$result = mysql_query("SELECT * FROM user WHERE login = $login");
$users = mysql_num_rows($result);
while($row = mysql_fetch_array($result)) {
$mpassword=$row['password'];
echo $mpassword;
}
}
?>
В uconfig.php подключение к mysql и еще мелкие опции
|
|
|

30.01.2010, 20:22
|
|
Участник форума
Регистрация: 24.08.2009
Сообщений: 145
С нами:
8797036
Репутация:
17
|
|
Может кто-нибудь сможет подкинуть свою часть авторизации,именно выдирание из мускула и сравнение
|
|
|

30.01.2010, 23:23
|
|
Reservists Of Antichat - Level 6
Регистрация: 14.11.2007
Сообщений: 177
С нами:
9731846
Репутация:
622
|
|
PHP код:
<?php
include("uconfig.php");
if(!isset($_POST['usubmit']))
{
$ustatus='<font color="red">Форма входа пользователей</font>';
}
else
{
$login=addslashes($_POST['ulogin']);
$password=md5($_POST['upassword']);
$result = mysql_query("SELECT * FROM user WHERE login = '$login'");
//$users = mysql_num_rows($result); нафига ?
while($row = mysql_fetch_array($result)) {
if($password === $row['password']){
echo 'true';
}
}
}
PHP код:
<?php
include("uconfig.php");
if(!isset($_POST['usubmit'])){
$ustatus='<font color="red">Форма входа пользователей</font>';
}else{
$login=addslashes($_POST['ulogin']);
$password=md5($_POST['upassword']);
$result = mysql_query("SELECT * FROM user WHERE login = '$login' and password = '$password'");
if($row = mysql_fetch_array($result)){
echo 'true';
}else{
echo 'false';
}
}
?>
Последний раз редактировалось chekist; 30.01.2010 в 23:32..
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|