[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Работа с ссылками
koala
<form action="" method="post" name="scan">
<
input name="url" type="text" value="http://example.ru" size="50" maxlength="70"><input name="ok" type="submit" value="Сканировать">
</
form>
<?php
set_time_limit(0);
if (isset($_POST['ok']))
{
$url = $_POST['url'];
echo 'Идет сканирование '.$url.'...<br>';

}

$files = array("index.php","add.php","config.php");

foreach($url as $files)
{
$headers = get_headers("$url$files");
if (eregi('200', $header[0]))
echo "<a href='$url$files'>$url$admin</a> Найдено<br>";
}



?>


Попробовал работать с ссылками и сайтами. Начал писать сканер сайтов, сканирует или проверяет на наличие фалов в массиве $files. Почему то выдает ошибку:

Warning: Invalid argument supplied for foreach() in Q:\home\localhost\www\xak\scaner.php on line 15


Если в foreach() меняю местами переменными то выдает уже три ошибки в 17 строке:

Warning: get_headers() [function.get-headers]: This function may only be used against URLs. in Q:\home\localhost\www\xak\scaner.php on line 17

Warning: get_headers() [function.get-headers]: This function may only be used against URLs. in Q:\home\localhost\www\xak\scaner.php on line 17

Warning: get_headers() [function.get-headers]: This function may only be used against URLs. in Q:\home\localhost\www\xak\scaner.php on line 17


В PHP я не больше недели и вот стараюсь втянутся, буду очень рад если разьясните как правильно сделать ну или намекнуть =)



Спустя 44 минуты, 38 секунд (21.03.2010 - 21:05) Night User написал(а):
foreach требует массив, а Вы строку предлагаетт...

и $files там писать не надо - другую переменную надо...

вместо
foreach($url as $files)
{
$headers = get_headers("$url$files");
if (eregi('200', $header[0]))
echo "<a href='$url$files'>$url$admin</a> Найдено<br>";
}


попробуйте
for($i=0; $i<count($files); $i++) {
$headers = get_headers($url."/".$files[$i]);
if (eregi('200', $header[0]))
echo "<a href='".$url."/".$files."'>".$url."/".$files."</a> Найдено<br>";
}


пока что не успел проверить... отпишите

Спустя 4 минуты, 47 секунд (21.03.2010 - 21:10) koala написал(а):
Night User, попробовал ваш вариант но тоже выдает ошибки в 17 строке - цикл for.

Но мне интересно как все это организовать с foreach() .

Спустя 3 минуты, 34 секунды (21.03.2010 - 21:14) Night User написал(а):
Какую ошибку, если не секрет

foreach рассматривает каждый элемент массива как ключ => значение либо просто как значение

могу предложить

foreach($files as $value) {
$headers = get_headers($url."/".$value);
if (eregi('200', $header[0]))
echo "<a href='".$url."/".$value."'>".$url."/".$value."</a> Найдено<br>";
}

Спустя 6 минут, 3 секунды (21.03.2010 - 21:20) koala написал(а):
Night User, вот нашел подобный скрипт:

<form action="" method="post">
<
input name="hash_lol" class="textbox" type="text" size="30" value="http://www.example.com/"/>
<
input name="submit_lol" class="textbox" value="Submit Site" type="submit">
</
form>
<?php
set_time_limit(0);

if (isset($_POST["submit_lol"])) {
$url = $_POST['hash_lol'];
echo "<br />Testing ".$url."<br /><br />";

$adminlocales = array("index.php");

foreach ($adminlocales as $admin){
$headers = get_headers("$url$admin");
if (eregi('200', $headers[0])) {
echo "<a href='$url$admin'>$url$admin</a> Found!<br />";
}
else {
echo "$url$admin NOT Found!<br />";
}
}
}

?>


Но я не могу понять откуда тут $admin ?

Спустя 4 минуты, 22 секунды (21.03.2010 - 21:24) Night User написал(а):
foreach($files as $value) {
$headers = get_headers($url."/".$value);
if (preg_match('|200|U', $headers[0]))
echo "<a href='".$url."/".$value."'>".$url."/".$value."</a> Найдено<br>";
}


вот только что протестировал - работает

$admin в том примере, а в моем случае $value - результат перебора всех значений массива по очереди, т.е. результат foreach (англ. "for each" - "для каждого" - т.е. для каждого значений массива сделать........)

пример выше работоспособен. только что протестировал

Спустя 15 минут, 36 секунд (21.03.2010 - 21:40) koala написал(а):
Night User, спасибо. Ошибки вылазили из за того что я не поставил цикл в конструкцию if else. Но это уже другая история. Но теперь я понял foreach(), еще раз спасибо. Жаль что на форуме нету системы репутации... =(

Спустя 51 минута, 45 секунд (21.03.2010 - 22:32) twin написал(а):
eregi deprecated
не надо её юзать. Лучше и быстрее preg_match()

Спустя 56 минут, 48 секунд (21.03.2010 - 23:28) koala написал(а):
Загрузил скрипт на сервер и запустил, через пару секнд содержимоем страницы пропадает и страница стает пустой (белой). Что может быть?

Второй вопрос: Как сделать циклом, что бы выводилось по очереди, например:

index.php - Найдено
index.HTML - Не найдено


_____________
Vi Veri Veniversum Vivus Vici
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.