#php #jquery #curl
#php #jquery #curl
Вопрос:
Я использовал curl для извлечения веб-страницы. На этой странице есть ссылки. На странице с извлечением curl, когда я нажимаю на ссылку, я хочу, чтобы jQuery выполнил скрипт curl для извлечения этой ссылки. У меня есть следующий код..
Это моя индексная страница, которая извлекает example.com с помощью curl и отобразите его.
<html>
<head>
<title>Public</title>
<script type="text/javascript" src="click.js"></script>;
</head>
<?php
$ch = curl_init();
curl_setopt ($ch, CURLOPT_URL, 'www.example.com');
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
$curl_response = curl_exec($ch);
curl_close($ch);
echo $curl_response;
?>
click.js
Я ориентируюсь на тег, поэтому при нажатии на любую ссылку он будет выполняться. Сработает ли это?
$(".a").click(function(){
$.getScript("curllink.php");
});
Это скрипт, который я хочу, чтобы js запускался, когда ссылка с тегом
curllink.php
<?php
$ch = curl_init();
curl_setopt ($ch, CURLOPT_URL, 'WHAT DO I PUT HERE?');
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
$curl_response = curl_exec($ch);
curl_close($ch);
echo $curl_response;
?>
Пожалуйста, не могли бы вы проверить это и исправить любые ошибки, которые я допустил. Спасибо
Комментарии:
1. У меня так много вопросов… почему вы пытаетесь запустить, прежде чем сможете ходить? во-первых, где находится
<a>
тег, 2. что$.getScript()
такое? 3. есть ли контент на вашем веб-сайте? или сторонний веб-сайт?2. Потому что я пытаюсь что-то сделать, и это предполагает, что мне нужно это сделать. Первый блок кода — это мой сайт. Он извлекает example.com и это echo, поэтому мой сайт выглядит точно так же, как example.com . Затем я нажимаю ссылку на своем сайте. Теперь он перенаправляет на example.com (оригинальный сайт), который мне не нужен. Я хочу, чтобы он извлекал example.com перейдите по ссылке, на которую вы указали, и отобразите ее на моем сайте. Тег <a> — это каждая ссылка, являющаяся тегом <a>. Остальное я не знаю, я пытаюсь найти ответ, собирая воедино материал, который может возникнуть. Вот почему я прошу о помощи..
3. Вы пытаетесь ввести людей в заблуждение? потому что вы не получаете от меня никакой помощи по этому поводу, лол,
4. Нет, совсем нет. Это приложение с веб-интерфейсом, и мне нужно повторно отобразить его, чтобы создать онлайн-версию. Обещаю, что это вообще не вводит в заблуждение.
5. Проверьте ответ Джона на jQuery
Ответ №1:
Хотя вам все равно нужно будет выполнить некоторый синтаксический анализ входящего файла, я думаю, вы хотите перехватить вызов скрипта и предотвратить поведение по умолчанию.
Ваш jquery больше походил бы на это:
$('a').click(function(){
location.href='curllink.php?url=' escape($(this).attr('href'));
return false;
});
PHP выглядит следующим образом (удаление CURL для упрощения:
<?php
echo file_get_contents($_REQUEST['url']);
Я не тестировал это, но это должно сработать… Не нужно экранировать параметр входящего URL.
Обновленный jQuery Вам нужно будет поместить это после того, как вы получите содержимое страницы.
$('a').live('click',function (e){
var href = $(this).attr('href');
href= href.replace('example.com','your_website.com');
e.preventDefault();
window.location.href = href;
return ;
});
Комментарии:
1. Что насчет других файлов, curllink.php что мне сделать, чтобы это исправить?
2. 2-й блок (PHP) — это вся предлагаемая мной замена для curllink.php .
3. На самом деле, это проблематично… При этом не учитываются относительные URL-адреса. Для этого вам нужно будет выполнить некоторый синтаксический анализ URL-адресов … скорее всего, в JavaScript.
4. Но, конечно, если в curl нет curllink.php затем он просто перейдет к исходному файлу..
5. @Michael curl это библиотека php или расширение, если хотите, оно получает страницу (по URL), затем получает ее содержимое, заголовки и все остальное полезное и манипулирует им, большинство поисковых систем используют этот метод для сбора данных веб-сайта.