- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Как снизить ДРР до 4,38% и повысить продажи с помощью VK Рекламы
Для интернет-магазина инженерных систем
Мария Лосева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Интересует возможность реализации такого сценария на php.
В скрипте ссылки выводятся по типу
Задача: можно ли сначала получить все ссылки которые передаются через функцию.
С данным массивом будет производится какая-то манипуляция, и обратно передать результат на тот же самый вызов функции.
А то парсить сгенерированный документ и отлавливать в нем ссылки меня не очень прельщает.
Задача: можно ли сначала получить все ссылки которые передаются через функцию.
Только разбирать уже выданное. Как вариант - выдавать сначала в буфер, разбирать, потом выдавать окончательно наружу.
Еще вариант, похожий. Перепишите функцию, чтобы ссылки складывались в глобальный массив (например, $links_arr), а сама функция выдавала код соответствующего элемента массива (например, $links_arr[13]). В конце скрипта производите необходимые операции над массивом, затем (например, через eval()) выдаете закэшированный код наружу.
Вроде, профит! ;)
Интересует возможность реализации такого сценария на php.
В скрипте ссылки выводятся по типу
Задача: можно ли сначала получить все ссылки которые передаются через функцию.
С данным массивом будет производится какая-то манипуляция, и обратно передать результат на тот же самый вызов функции.
А то парсить сгенерированный документ и отлавливать в нем ссылки меня не очень прельщает.
Найдите где sefUrl определяется типа
function sefUrl($url) {
измените ее вызов на нечто вроде
function sefUrl($url,$whatToReturn='nothing') {
в саму функцию допишите
static $urlas=array();
///some code of function
if($whatToReturn=='urls') return $urlas; else $urlas[]=$url;
-
в результате урлы будут автозаписываться, а вызов sefUrl('','urls') вернет текущий список оных.
Если же доступа к sefUrl нету (закодировано или типа того), то можно попробовать поставить apd и использовать http://ru2.php.net/override_function
Скрипт покажите, иначе по вашему "echo sefUrl('здесь_ссылка');" ничего не понятно.
Если ссылки откуда-то передаются, в чем проблема их получить оттуда же? Или я что-то к ночи уже не соображаю?
Согласен с edogs. sefUrl() чёт не похожа на стандартную функцию. А значит, её можно переопределить. Или там есть какой-то нюанс, в связи с которым нужно оперировать сразу всем массивом, а не каждой ссылкой отдельно?
Идея какая. Сначала получить все ссылки которые передаются через sefUrl().
Далее использую полученный массив сделать ОДИН запрос к БД на получение СЕФ-ссылок, и обратно отдать результаты той же самой функции что она вывела результат.
Т.е. сделать по аналогии парсинга уже сгенерированного документа.
Т.е. сделать по аналогии парсинга уже сгенерированного документа.
V_G, можно с минимальными доработками сделать через ob_get_contents() и eval().
А там "СЕФ-ссылок"-то много? Может их просто все получать?
А вообще - обычно испльзую способ, похожий на предложенный bon_eur ob_.. (ob_start,ob_get_clean "лаконичнее") + str_replace/preg_replace. callback-функцию для обработки, кстати можно указать сразу при вызове ob_start (http://www.php.net/manual/en/function.ob-start.php#example-455)
bon_eur, не уловил, а как предлагается eval использовать?
Тут один я ничего не понял?
Что передается в функцию, что она делает и что возвращает? И чем не устраивает? Лично я ничего не понял.
ivan-lev, была мысль модифицировать sefUrl(), чтобы она выдавала строки вроде <? echo $links_arr[45];?>. Затем использовать eval(), например в callback-функции, для преобразования этих кусков кода в соответствующие (уже модифицированные, как хочет ТС) значения массива.
Но, по сути, это тот же самый парсинг буфера, да еще и с применением не слишком секьюрной eval().
ТС, предлагаю сделать чуть проще и секьюрнее:
Выдает вот что:
V_G, как я понимаю, это то, что надо. Но, как тут уже правильно заметили, видимо, с вашим кодом что-то не так, если приходится надстраивать такие костыли ;) Но утверждать не могу, кода не видел.
V_G, я так понял, вы всё это затеяли ради увеличения скорости выполнения (сократив количество запросов к СУБД)?
Попробуйте сравнить вариант bon_eur и свой исходный. Вряд ли будет такой уж большой выигрыш, чтобы добавление костылей в код стало оправданным.