如何让其他域的用户从我的域中搜索记录?

时间:2009-07-10 08:06:41

标签: php mysql

在我的网站上,用户可以进行关键字搜索并找到所需的结果。 (只是一个简单的关键字搜索,WHERE字LIKE%abc%或LIKE%cde%等等)。一切正常。

我有一些合作伙伴网站想在他们的网站上放一个搜索框,从我的网站搜索记录并在他们的网站上显示。

我们正在使用PHP和MYSQL。合作伙伴网站是否必须像软件一样使用cURL?我希望它能为我的合作伙伴网站提供最小但经过验证的工作。

所以我的问题是 - - 怎么做和从哪里开始? - 我必须对现有搜索做出哪些改变?

  • 任何实际的例子肯定会有帮助吗? (PS:我不是在寻找完整的解决方案,但你知道一些代码确实有助于理解很多事情)

谢谢大家。

2 个答案:

答案 0 :(得分:4)

那么你可以打开你的整个MYSQL套接字,以便他们可以建立直接连接但这将是一个糟糕的解决方案。 所以你可能想要做的是创建某种简单的web服务,其中另一个软件(如cURL)可以以机器可读的形式(例如JSON或XML)检索数据。只需将搜索结果序列化为正确的格式,而不是将其输出为HTML。

<?php

$search = array(
    array("id" => 1, "name" => "An item name", "description" => "The item description"),
    array("id" => 2, "name" => "Another name", "description" => "This is a description")
);

// Of course the array above is just an example. You would probably do something like this:
$search = find_items(mysql_real_escape($_GET['search']));

echo json_encode($search);

?>

好处是您也可以通过AJAX轻松使用相同的数据。

答案 1 :(得分:1)

cURL是一种方法,但更好的方法是在这种情况下使用SOAP。您基本上为合作伙伴网站设置了一个wsdl(xml文件)来解析,然后向您的SOAP服务发送适当的请求(例如身份验证+搜索术语),然后返回数据(例如数组数组(url,标题,desc)) )。

使用这种方法而不是cURL是合作伙伴网站的可能认证,因此可以轻松确定哪个合作伙伴网站生成了哪些搜索请求等。

但这是一个更复杂的解决方案,需要PHP的SOAP扩展(双方)。