【问题标题】:php regular form and inputphp正则表单和输入
【发布时间】:2011-01-11 12:52:30
【问题描述】:

我想从这个站点获取搜索框,我使用 php 常规表单部分,但其中还有许多其他 html 代码。那么如何删除它们并获得一个纯搜索框呢?谢谢。

<?php
$str = file_get_contents('http://bingphp.codeplex.com');
preg_match_all('~<form.+</form>~iUs', $str, $match);
var_dump($match);
?>

【问题讨论】:

  • 你想达到什么目的?
  • 您为什么要这样做?您将无法使用该表单...
  • php regex problem 的可能重复项
  • @mario,你好,我还在其他网站看到这个问题,我很好奇,我也想知道如何解决。所以我复制了问题并在这里提问。但是这里也有一个在您的超链接中。所以这个问题看起来重复了。我会关闭它。谢谢大家。

标签: php html regex


【解决方案1】:

应该使用DomDocument解析器?

$dom = new DomDocument;
libxml_use_internal_errors(true);
$dom->loadHTMLFile('http://bingphp.codeplex.com/');
$nodes = $dom->getElementsByTagName('form');
foreach ($nodes as $node)
{
  echo simplexml_import_dom($node)->asXML();
}

附言

本软件由版权持有者和贡献者“按原样”提供,任何明示或暗示的保证,包括但不限于适销性和特定用途适用性的暗示保证免责声明。在任何情况下,版权所有者或贡献者均不对任何直接、间接、偶然、特殊、惩戒性或后果性损害(包括但不限于采购替代商品或服务;使用、数据或利润损失;或业务中断),无论是由何种责任理论引起的,无论是在合同、严格责任或侵权行为(包括疏忽或其他方式)中以任何方式使用本软件引起的,即使已被告知存在此类损害的可能性。

【讨论】:

  • 使用 HTML 解析器是此类问题的唯一解决方案。
  • 如何使用DomDocument?我只是使用你的代码,但仍然得到许多其他的 html 代码。
  • @cj333 - 你在寻找 javascript 中的 form 吗?
  • 我想得到和ClemDesm的code一样的code,只有&lt;form&gt;&lt;input&gt;
【解决方案2】:

如果您只想要搜索框。为什么不使用你的自己的搜索框?

<form action="http://bingphp.codeplex.com/Wiki/Search.aspx" method="GET">
    <input type="hidden" name="tab" value="Home" />
    <input type="text" name="SearchText" value="PHP" />
    <input type="submit" value="Let's vamp the search" />
</form>

我什至不确定hidden 输入是否必须在此处(取决于他们是否在他们身边检查)。

【讨论】:

    【解决方案3】:

    您可能想尝试使用相同的字段创建自己的表单,只需将 action 属性更改为与原始站点相同的 action 目标。

    但它并不总是有效。

    【讨论】:

      猜你喜欢
      • 2011-11-26
      • 1970-01-01
      • 1970-01-01
      • 2015-01-25
      • 2012-12-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-09
      相关资源
      最近更新 更多