【问题标题】:How to use php curl in searching and outputting from another website?如何使用 php curl 从另一个网站搜索和输出?
【发布时间】:2013-12-06 09:54:42
【问题描述】:

我是一名刚接触网络开发世界的学生。请原谅我有一些错误和知识不足。

我的问题是如何在这个问题中使用 php cUrl,我制作了一个 php 文件作为另一个网站的索引或首页。我们被要求做的是创建一个搜索页面,然后输出搜索结果。用户输入一些内容,然后在其他网站上搜索,然后结果可能会在某些 iframe 上输出。

下面是我的代码,

<?php
$url = 'http://somesite.com';
{
$username=$_POST['Search'];
$yourformfields="Search=$Search";
$curl_handle=curl_init();
curl_setopt($curl_handle,CURLOPT_URL,'http://somesite.com');
curl_setopt($curl_handle,CURLOPT_CONNECTTIMEOUT,2);
curl_setopt($curl_handle,CURLOPT_RETURNTRANSFER,1);
curl_setopt($curl_handle,CURLOPT_POST,1);
curl_setopt($curl_handle,CURLOPT_POSTFIELDS,$yourformfields);
$buffer = curl_exec($curl_handle);
//$result = curl_exec($curl_handle);

curl_close($curl_handle);

if (empty($buffer))
{
    echo"<iframe src='$buffer'></iframe>";
}


}

?>

    <form action="index.php" method="post">
    <input type="text" name="formName" value="<?=$varName;?>">
    <input type="Submit" name="formSubmit" value="Search">
    </form>

发生的情况是当我输入某些内容时它不会输出结果,老实说它不会输出任何内容。我已经检查了 4 或 5 次,但由于我目前在网络开发和编程方面的知识,我似乎无法找到问题所在。感谢 tnx 的所有帮助。

【问题讨论】:

  • 你的意思是用户输入了一些网页,你应该显示那个网页还是什么?
  • 您必须发布完整代码,因为您的代码缺少某些部分,在您发布完整代码或正确说明您的问题之前,我们无法找到正在发生的事情
  • 用户将输入邮政编码,然后它应该显示来自其他网站的结果,在我们的例子中,我们使用 iframe 输出
  • 你能给出一个示例网站和示例输出吗?
  • 示例。 Input=2000 Output 应该是 Postcode、Suburbs 和 Category。输出来自另一个网站,我只需将其输出到我的索引中,所以基本上发生的情况是对该网站的搜索只是放到了另一个网站。

标签: php html curl


【解决方案1】:

这应该会给您一个良好的开端,并且 iframe 在您的情况下不是一个好的解决方案,请尝试使用 ajax。

curl.php

    <form action="curl.php" method="post">
        URL <input type="text" name="url" value="<?php echo ((isset($_POST['url']))?$_POST['url']:"") ?>"> <br>
        Keyword <input type="text" name="keyword" value="<?php echo ((isset($_POST['keyword']))?$_POST['keyword']:"") ?>"> <br>
        <input type="Submit" name="formSubmit" value="Search">
    </form>

<?php
if(isset($_POST['formSubmit']))
{
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $_POST['url']);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
    $st = curl_getinfo($ch, CURLINFO_HTTP_CODE);  
    $response = curl_exec($ch);
    if($st==200)
       echo "Request Unsuccessful";
    else
    {
        if (strpos($response,$_POST['keyword']) !== false)
        {
            echo 'Your input keyword found.';
        }
        else
            echo 'No matches, try another keyword';
    }
    curl_close($ch);
}
?>

注意:此代码要求您已启用php curl 扩展

【讨论】:

  • 如果您遇到问题,请告诉我
  • CURLOPT_FOLLOWLOCATION 在启用安全模式或设置 open_basedir 时无法激活 - 但如果没有此行,它至少可以在同一域上进行搜索
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-14
  • 2013-06-09
  • 2012-09-09
  • 2015-12-19
  • 2017-05-06
相关资源
最近更新 更多