在所需页面中显示其他页面结果

时间:2011-06-19 02:13:07

标签: javascript jquery html post iframe

我有一个表单将数据发布到另一个域的网址。我必须在我的域中使用该表单而不更改地址栏中的网址... 细节...

我在http://otherdomain.com/search中有一个搜索框(将数据发布到网址http://mydoamin.com/index.html) 现在,当我点击提交时,它会在其他域中显示结果...

我需要制作一个页面http://mydoamin.com/search.html并在此处显示结果..

我该怎么做..(使用iframes,javascript,jquery或php)?

1 个答案:

答案 0 :(得分:0)

如果我理解正确,您似乎想要从otherdomain.com获取搜索结果并在您的网站上显示结果,而不是将用户重定向到otherdomain.com。那是对的吗?

如果是这样你想要研究的是通过PHP进行屏幕抓取,可以使用几种技术(Curl& regex),这是一个非常简单的例子,我只是用谷歌作为例子。

创建一个名为search.php的文件并将此代码放入其中 - 应该直接使用。

<h1> Super Search Site </h1>

<form action="search.php" method="post">
Search: <input type="text" name="search" />
        <input type="submit" />
</form>

<?php

 @$searchString = $_REQUEST["search"];

if(isset($searchString))
{
$pageRaw = file_get_contents("http://www.google.co.uk/search?q=$searchString");
$newlines = array("\t","\n","\r","\x20\x20","\0","\x0B"); //removes all white space - inclding tabs, newlines etc - makes easier when using regex
$pageCleaned = str_replace($newlines, "", html_entity_decode($pageRaw));

/*
 * $contentStart = the start of content wanted
 * $contentEnd = the end of content wanted
 * $contentWanted  = content between $contentStart and $contentWanted
 */

$contentStart = strpos($pageCleaned,'<ol>'); //Looks in the source code for <ol>
$contentEnd = strpos($pageCleaned,'</ol>',$contentStart); //Looks in the source code for </ol>
$contentWanted = substr($pageCleaned,$contentStart,$contentEnd-$contentStart);

echo $contentWanted;
}
else
{ return; }

?>