Зарегистрирован: 22.11.2011 Сообщения: 208 Откуда: караганда
понадобился код, который на входе имеет url а на выходе - массив ссылок, при чем, решил, что по ходу нужно дописать протокол http(s):// или весь домен, если ссылка относительна.
исходный код
$url_parts = parse_url($target_url); //получаем части адреса
echo "function parse_url() \n"; //выводим их
print_r($url_parts); //
$time_start = getmicrotime();
$matches= array_unique(getlinks($target_url)); //находим ссылки по адресу без дублирования
print_r ($matches[0]);
//$domen=$url_parts[scheme]."://".$url_parts[host];
$domen= getdomen($target_url); //получаем имя домен
$f=fopen("gl_result.dat", "w+") or die("Cannot open file gl_result.dat");
$fa=fopen("gl_all_result.dat", "a+") or die("Cannot open file gl_all_result.dat");
flock($f,2);
flock($fa,2);
//fwrite($f,$target_url."\n");
foreach ($matches[0] as $ltw){
$ltw.="\n";
echo "</fieldset>";
$time=getmicrotime()-$time_start;
echo "Все выполнено за $time секунды\n";
?>
</pre>
попытка собрать все preg_replace воедино в функцию getlinksclean()
терпит неудачу, возвращая ничего.
Если там, где в теле функции после эхо12\n
поставить print_r($matchesl1[0]) - все выводиться как надо(но без "дописок"). Если ставим print_r($matchesl2[0]) после первого preg_replace выводит совсем не то ,что должен. Такое ощущение ,что когда для preg_replace на входе строка - т овсе ок!, а когда массив - что то не то.
Что подскажете с незамыленым глазом, а то уже вторая ночь без сна пошла?
Понятно, что можно через цикл передавать элементы массива как строку и preg_replace править построчно, завтра на свежую голову попробую ,но хочу понять что я делал не так
Работоспособность кода до попытки собрать все в функцию можно проверить тут.
Зарегистрирован: 22.11.2011 Сообщения: 208 Откуда: караганда
Вроде разобрался
Оказывается намудрил с многомерностью массивов.
preg_match_all возвращает многомерный массив, где возвращены все соответствия подшаблонам, а потом, после preg_replace уже идет одномерный массив.
уф! но оно того стоило
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах