[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Запрос к стороннему сайту
Страницы: 1, 2
MORFIUS-INC
Доброе утро господа, у меня есть вопрос следующего характера:

Имеется 2 сайта.
Один сайт: Калькулятор
Второй сайт: Пренадлежит фирме.

Впрос: Как грамотно из сайта "калькулятора" изьять форму для расчетов(не трогая остальное тело сайта) и отобразить это дело на сайте фирмы?

Притом при нажатии на кнопку "Расчитать" чтобы на сайт калькулятора отправлялся запрос, передавал данные, и имитировал нажатие на кнопку с аналогичным названием.

Лично мне пришла в голову только идея с AJAX запрососом к странице "калькулятора" но вот делема: я все еще не знаю как на PHP грмотно вырвать не весь сайт а именно интересующий меня кусок.
(есть ли решение кроме регулярки: {<div class="****">*+</div>})

p.s. Это конечно не правильная регулярка. просто для наглядности.

_____________
Рука бойцов колоть устала
Xpund
Если значение постоянное, можно не регулярной а точной строкой=)

_____________
минус, конечно, иногда полезен, но плюс мне нравиться больше :)
Женский журнал - Жена сказала раскрутить сайт любой ценой (Sorry)
MORFIUS-INC
Значение не простоянное, калькулятор меняется и передает разные параметры в разные системы расчета...

Притом так как этот калькулятор привязан к базе данных, и в его теле могу появиться новые значения, мне надо изымать все что находится в теле:

<div id="content">***калькулятор***</div>

сейчас пробую:

file_get_contents

preg_match('{<div id="content">(.+)</div>}',$file, $f);


Но эта структура поможет мне в лучшем случае вывести калькулятор...
(при условии что я весь контент очищу от переноса строки а то регулярка стопается...)

А вот как значения из полей передать в форму калькулятора еще не очень понятно....

_____________
Рука бойцов колоть устала
AllesKlar
Цитата
А вот как значения из полей передать в форму калькулятора еще не очень понятно....

Смотри на калькуляторе "action", т.е. куда отправляется форма.
И на своем сайте аяксом туда же и отправляй, смотри сначала ответ обработчика, а потом вставляй его в свой калькулятор.

Либо, вставь этот калькулятор как iframe и тогда все само будет работать, правда этот метод больше похож на рукоблудие.


_____________
[продано копирайтерам]
MORFIUS-INC
Да, этот метод мне не подходит, так как там еще будет отправка письма Манагеру с данными из калькулятора.. а из iframe их выудить неудастся.

А что до области действия формы, так она ссылается сама на себя.

Т.к. Сайт фирмы стоит на Joomla придется судя по всему создавать отдельный модуль одно из полей которого будет какраз-таки адрес страницы калькулятора куда AJAX-ом и отправлять данные из полей "сПарсиных" регуляркой....
ГЕМАРОЙ.....
+ еще надо будет отдельно парсить внутреннюю навигацию калькулятора и создавать второй AJAX запрос к сайту "Фирмы" на предмет перепарсивания страницы и вывода второй разновидности калькулятора.

P.S. На мой взгляд какая-от кривоватая структурака. Может можно проще?

_____________
Рука бойцов колоть устала
sergeiss
Может я не до конца понял суть проблемы....

1. Есть ли доступ к тому сайту (к его кодам), где имеется искомый калькулятор?
2. Разбираешься ли ты сам в ПХП?

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
killer8080
Цитата (MORFIUS-INC @ 7.02.2014 - 07:49)
Лично мне пришла в голову только идея с AJAX запрососом к странице "калькулятора"

аякс не будет работать с чужим доменом, если только тот сайт не отправляет соответствующие заголовки, разрешая кроссдоменные запросы, что врятли, и то даже в этом случае старые браузеры пролетают.
AllesKlar
killer8080
Свой обработчик, который в свою очередь переправляет запрос тем же курлом на сайт источник, а потом аяксу выдает то, что источник вернул?

_____________
[продано копирайтерам]
killer8080
Цитата (AllesKlar @ 7.02.2014 - 11:27)
Свой обработчик, который в свою очередь переправляет запрос тем же курлом на сайт источник, а потом аяксу выдает то, что источник вернул?

Можно конечно, но о проксировании ТС ни пол слова не сказал smile.gif
MORFIUS-INC
Да у меня есть доступ к сайту с калькулятором
Да я разбираюсь в PHP



_____________
Рука бойцов колоть устала
Игорь_Vasinsky
Цитата
Да у меня есть доступ к сайту с калькулятором
Да я разбираюсь в PHP

тогда зачем такие трудности с парсингом?

сразу передавай данные на обработчик калькулятора в нужном формате и получай ответ.



_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
MORFIUS-INC
Цитата (Игорь_Vasinsky @ 7.02.2014 - 11:50)
Цитата
Да у меня есть доступ к сайту с калькулятором
Да я разбираюсь в PHP

тогда зачем такие трудности с парсингом?

сразу передавай данные на обработчик калькулятора в нужном формате и получай ответ.

Парсинг нужен для самой формы, так как форма, и колличество параметров может меняться. Поэтому строить локальный аналог "динамичной" формы будет не очень грамотно.
Поэтому и задумываюсь про AJAX.

_____________
Рука бойцов колоть устала
sergeiss
Цитата (MORFIUS-INC @ 7.02.2014 - 15:36)
Да у меня есть доступ к сайту с калькулятором
Да я разбираюсь в PHP

Я, вместе с Игорем, недоумеваю smile.gif Какие тогда проблемы? " Как грамотно из сайта "калькулятора" изьять форму для расчетов"? Чуть подробнее, плз!


_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
MORFIUS-INC
Ок.
Попробую перефразировать вопрос.
Как мне на сайте "Фирмы" отобразить полностью рабочий калькурятор с другого сайта, который просто точит хвостом на ружу и доступен в интернете по IP.

http://188.162.164.57/templates/14903738/ (это адрес с "контентом")

Содержимое <div id="content"> а не все целиком.

Сохраняя возможность выполнить расчеты на этом калькуляторе, и передать их результаты на сайт "Фирмы"
Притом сайт фирмы должен иметь возможность использовать все данные, чтобы сформировать e-mail.

_____________
Рука бойцов колоть устала
BaNru
Сам калькулятор на JS, поэтому тебе необходимо подключить их скрипты
и скопировать всё что между <form> и </form>
и будет PROFIT


Более подробно:

Скрипты
<script type="text/javascript" src="http://188.162.164.57/scripts/jquery.js"></script>

Его можно со своего сервера или с CDN тянуть, это фреймворк. В его потроха они не полезут.
Сам калькулятор под формой
Так же может быть вот эти надо будет подключить. Не вдавался в подробности.
<script type="text/javascript" src="http://188.162.164.57/scripts/templates.js"></script>
<script
type="text/javascript" src="http://188.162.164.57/scripts/niceselect.js"></script>


Регулярка для этого примерно такая (не проверял)
~<form(.*)<\/script>~

т.е. вытаскиваем весь <form> и калькулятор следом.

Нельзя забывать, что это делается на свой страх и риск!

UPD
Кстати, там нету AJAX'а, всё отсылается обычным POST после клика по РАССЧИТАТЬ
calc%5Btir%5D=5000&calc%5Bcolor10%5D=5%2B5&calc%5Bpaper14903740%5D=41839&calc%5Bquestion7%5D=1&calc%5Bquestion8%5D=1

Поэтому придется делать прослойку у себя на сервере. ACTION в форме вставлять свой и потом своим скриптом, через cURL передавать POST, получать ответ и выводить у себя.
Быстрый ответ:

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