回应一个变量

时间:2011-04-20 23:59:21

标签: php

我正在制作搜索引擎,其中一项功能就是搜索Google等等。我做的第一件事就是找出如何仅基于URL生成Google搜索。嗯,“http://www.google.com/search?hl=en&source=hp&biw=1542&bih=928&q=”是第一部分,“查询”是第二部分,“&” ; aq = f& aqi = g10& aql =& oq =& qscrl = 1“是第三部分。现在,在客户端我创建了一个名为“搜索”的表单,操作是下面的文件。但是,我试图在服务器端使这个看起来合理的尝试完全失败了。以下是代码:

    <?php

  $something = $_REQUEST["search"];
  $txt1="http://www.google.com/search?hl=en&source=hp&biw=1542&bih=928&q=";
  $txt2 = $something;
  $txt3="&aq=f&aqi=g10&aql=&oq=&qscrl=1";
  $string=$txt1.$txt2."+".$txt3;

  $link_to_dig = $string;

  $original_file = @file_get_contents($link_to_dig);
  if(!$original_file)
    die("Error loading {$link_to_dig}");

  $path_info = parse_url($link_to_dig);
  $base = $path_info['scheme'] . "://" . $path_info['host'];

  $stripped_file = strip_tags($original_file, "<a>");
  $fixed_file = preg_replace("/<a([^>]*)href=\"\//is", "<a$1href=\"{$base}/", $stripped_file);
  $fixed_file = preg_replace("/<a([^>]*)href=\"\?/is", "<a$1href=\"{$link_to_dig}/?", $fixed_file);
  preg_match_all("/<a(?:[^>]*)href=\"([^\"]*)\"(?:[^>]*)>(?:[^<]*)<\/a>/is", $fixed_file, $matches);

  //DEBUGGING


  //$matches[0] now contains the complete A tags; ex: <a href="link">text</a>
  //$matches[1] now contains only the HREFs in the A tags; ex: link

  $result = print_r($matches, true);
  $result = str_replace("<", "&lt;", $result);
  print "<pre>" . $result . "</pre>";

?>

感谢您的帮助!

这是表格:

<form class="searchengine" name="search" action="search.php" method="post">
<input type="text" style="width:580px; height:35px; color:#000000;" class="search" name="search" />
</form>

1 个答案:

答案 0 :(得分:0)

我假设您对php非常陌生并从某个地方获取此脚本并尝试修改它以适应。

echo - 输出一个或多个字符串 - 不返回任何值。

所以:

$txt2 = echo "$something"

首先关闭它失败,因为没有结束分号。

在屏幕上打印$ something,$ txt被设置为空。

你已经拥有$ something的价值,所以我不知道你为什么要把它改成另一个变量,但是这样做了:

$txt2 = $something;

然后,如果你想让脚本变得更好,那么SO上的大多数人都会指向DOMDocument