не могу понять - выдает ошибку и все тут ????

Статус
В этой теме нельзя размещать новые ответы.

seo_expert

Новичок
не могу понять - выдает ошибку и все тут ????

пишу скрипт по подсчету количества внешних и внутренних ссылок у списка страниц

URL адреса страниц списком вставляю в форму (в одной строке одна ссылка) - и далее идет передача ссылок в скрипт
Когда передается одна ссылка (адрес страницы) - то все ОК!!

Когда передаю список то выдает ошибку на второй ссылке - причем первую проходит все ОК!

Описание:

в цикле запускаю функцию "file_get_contents":

$result = file_get_contents ($link_1);

в переменную: $link_1 - передаю url адрес очередной страницы

почему-то на втором проходе цикла выдает ошибку:
Warning: file_get_contents( http://www.ХХХf.ru/) [function.file-get-contents]: failed to open stream: Invalid argument in .....

Подскажите ПЛИЗ - вчем дело ????
 

DiMA

php.spb.ru
Команда форума
почитай ФАК на тему отладки своего кода
 

seo_expert

Новичок
читал ....

потому и ищу помощи ... может кто знает ...
а в факе там только фак ...

-~{}~ 11.08.09 23:43:

Натолкните хоть в какую сторону рыть...
 

seo_expert

Новичок
первый файл для передачи списка ссылок в скрипт:
==========================================
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>Untitled Document</title>
</head>

<body>

<form name="form1" method="post" action="skript.php">
<label>введите ссылки:
<textarea name="text" cols="100" rows="10" id="text"></textarea>
</label>
<p>
<label>Ввести
<input type="submit" name="boot" id="boot" value="Submit">
</label>
</p>
</form>

</body>
</html>
================================================




второй файл - скрипт - "skript.php":
================================================

<?php
//======================================================
//Получаем ссылки и помещаем их в массив

if (isset($_POST['text']))
{
$fp = $_POST['text'];
$fp = nl2br($fp);
$pieces = explode("<br />", $fp);


//========================================================
//Обрабатываем массив ссылок

foreach ($pieces as $ss=>$ss1)
{
echo "<br> <br>".$ss1."!!!!!!!!!!!!!!!!!!";

$link_1=$ss1;

$plink=str_replace('https://','',$link_1);
$plink=str_replace('http://','',$plink);
$plink=str_replace('www.','',$plink);
$t=explode('/',$plink);
$c = $t[0];


//в переменную помещаем весь html код страницы

$result = file_get_contents ($link_1);


$a_exp ="/<[\\s]*a[\\s][^>]+>/";

//$h_exp = "/[\s]+href[\s]*\=[\s\"\']*(https?\:\/\/[^>\s\"\']+)/i";

$h_exp = "/(href=\")(?<=>).(\")/i";

$link_matches=array();
preg_match_all($a_exp,$result,$link_matches);

print_r ($link_matches);

$ext_count=0;
$int_count=0;
$nn = 0;
foreach ($link_matches[0] as $tt=>$lm){
preg_match($h_exp,$lm,$href_matches);
$plink_0=$href_matches[0];
$plink=$href_matches[1];

$nn=$nn+1;
echo $nn.'.'.$plink.' <br>';

$plink=str_replace('https://','',$plink);
$plink=str_replace('http://','',$plink);
$plink=str_replace('www.','',$plink);
$t=explode('/',$plink);
$domain = $t[0];

$link_matches[0][$tt]=$domain;


if (strlen($domain)<3){
$int_count++;
}else{
if ($domain==$c){
$int_count++;
}else{
$ext_count++;
}
}

}
echo "<br/>найдено внешних - ".$ext_count.", внутренних - ".$int_count."br";
}
}
else{
echo "Нет ссылок для анализа";

}

?>

================================================

в форму вставляю две строки (в элемент: name="text"):

http://phpclub.ru
http://yandex.ru

Причем когда вставляю одну ссылку все ок!!!
стоит поставить 2 ссылки - выдает ошибку ...

-~{}~ 12.08.09 00:12:

выдает ошибку при проходе второй раз по строчке:

$result = file_get_contents ($link_1);
 

dimagolov

Новичок
АААААА....
Вот так рождаются настоящие индусы:
PHP:
$fp = $_POST['text'];
$fp = nl2br($fp);
$pieces = explode("<br />", $fp);
это же надо до такой степень не думать своей головой, чтобы из этого топика написать такой код
:D

п.с. а если http://yandex.ru вставить первой ссылкой то точно все ОК?
 

dimagolov

Новичок
п.п.с. seo_expert, ты скопируй именно то, что твой скрипт на экран выводит, а не расказывай сказки "выдает ошибку при проходе второй раз по строчке"
 

seo_expert

Новичок
да точно все ок!!!

я каждую из этих и не только этих ссылок попробовал ... по отдельности все ок!!!

-~{}~ 12.08.09 00:51:

Вот что выдает:
=====================================

http://phpclub.ru!!!!!!!!!!!!!!!!!!
найдено внешних - 0, внутренних - 35br

http://yandex.ru!!!!!!!!!!!!!!!!!!
Warning: file_get_contents( http://yandex.ru) [function.file-get-contents]: failed to open stream: Invalid argument in Z:\home\localhost\www\2\skript.php on line 46

найдено внешних - 0, внутренних - 0br
=========================================

-~{}~ 12.08.09 00:53:

а вот по отдельности:

===========================

http://phpclub.ru!!!!!!!!!!!!!!!!!!
найдено внешних - 0, внутренних - 35br

===========================

===========================

http://yandex.ru!!!!!!!!!!!!!!!!!!
найдено внешних - 0, внутренних - 111br

===========================

-~{}~ 12.08.09 00:54:

у меня проблема еще с отделением внешних ... но с этим не сейчас ...
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху