powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / [php] как не зациклить?
8 сообщений из 8, страница 1 из 1
[php] как не зациклить?
    #39747473
Фотография yarnik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как сделать чтобы чтобы максимум закилилось на 5 раз?
Код: php
1.
2.
3.
function make_curl($url) {
	make_curl($url);
}
...
Рейтинг: 0 / 0
[php] как не зациклить?
    #39747480
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В приведенном коде рекурсия в явном виде. У рекурсии есть глубина вложенности. Как вариант, можно добавить второй параметр и анализировать его.
Но если Вам нужно именно максимум N вызовов функции, то гораздо проще (и понятнее) написать цикл.
...
Рейтинг: 0 / 0
[php] как не зациклить?
    #39747505
Фотография yarnik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я написал примитивно чтобы не загружать скрипт,
на самом деле он выглядит более обьемно, в данном случае это:
Код: php
1.
2.
3.
4.
5.
function make_curl($url) {
	if ($code == 301 || $code == 302 || $code == 303) {
		make_curl($url);
	}
}


Но есть сайты, которые определяют что к ним конектятся програмно и все время выдают редирект.
Вот я и хочу указать максимальное количество попыток
...
Рейтинг: 0 / 0
[php] как не зациклить?
    #39747529
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что мешает использовать CURLOPT_FOLLOWLOCATION для следования по редиректам + CURLOPT_MAXREDIRS для ограничения количества переходов?
...
Рейтинг: 0 / 0
[php] как не зациклить?
    #39747629
Фотография yarnik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. CURLOPT_FOLLOWLOCATION у меня не работает
2. мне нужно не знать сколько было редиректов

а по сути решение может кто то предложить?
...
Рейтинг: 0 / 0
[php] как не зациклить?
    #39747635
Фотография yarnik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я решил так:
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
$redirect_count = 0;
function make_curl($url) {
	global $redirect_count;
	if ($redirect_count > 4) { echo "redirect_count > 3"; }
	elseif ($code == 301 || $code == 302 || $code == 303) {
		$redirect_count++;
		make_curl($url);
	}
}
...
Рейтинг: 0 / 0
[php] как не зациклить?
    #39747731
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
yarnik1. CURLOPT_FOLLOWLOCATION у меня не работает
Вы какой-то особенный, что оно у вас не работает?


yarnik2. мне нужно не знать сколько было редиректов
http://php.net/manual/ru/function.curl-getinfo.php
Код: plaintext
CURLINFO_REDIRECT_COUNT - Число перенаправлений с включенной опцией CURLOPT_FOLLOWLOCATION


yarnikа по сути решение может кто то предложить?
продолжай писать велосипеды.
...
Рейтинг: 0 / 0
[php] как не зациклить?
    #39747732
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор
Код: plaintext
if ($redirect_count > 4) { echo "redirect_count > 3"; }

Л - логика!
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / [php] как не зациклить?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]