【问题标题】:Help with looping for an array with key and value帮助循环使用键和值的数组
【发布时间】:2011-05-23 05:32:27
【问题描述】:

我正在尝试制作这个从 html 中提取文本以执行多个步骤的函数,但我不知道如何对其进行循环。

这是任务。我有这个数组

$arr = array("<div>" => "</div>", "<p>" => "</p>", "<h3>" => "</h3>");

现有的工作函数cut($a, $b, $c) 在这种情况下获取介于两者之间的内容$a = "&lt;div&gt;", $b="&lt;/div&gt;" and $c = the html

我想要做的是:

  • 第 1 步 - 从 div 剪切到 div
  • 第 2 步 - 来自第 1 步的 foreach 结果, 从p切到p
  • 第 3 步 - 来自第 2 步的 foreach 结果, 从 h3 切到 h3
  • 第 n 步,其中 n 是数组长度。

虽然我知道我可以使用 foreach 来获取结果并应用第二步,但我不能一概而论。

编辑

我有一个名为cut 的现有函数,如上所述。我想创建一个名为 cutlayer($arr, $html) 的新函数,其中 $arr 是上面的 arr。我需要 cutlayer 函数来使用 cut 函数并执行上面提到的以下步骤,但我不知道该怎么做。

谢谢

【问题讨论】:

  • 我不清楚你想要什么,请你举一个输入的例子,以及想要的输出吗?
  • 你写了一个函数不知道怎么用?
  • 我已经编辑了原始问题。现在清楚了吗?
  • 您最好发布您现有的 cut() 函数,以便我们了解您是如何尝试解决此问题的。

标签: php arrays


【解决方案1】:

省去麻烦,使用专为解析 HTML 设计的工具包。 PHP 的DOMDocument 就是为这些任务而设计的。

$dom = new DOMDocument();
$dom->loadHTML($yourHTML);
$divs = $dom->getElementsByTagName("div");

// Get the inner contents of all divs, for example
foreach ($divs as $div) {
  echo $div->nodeValue;
}

除非这是家庭作业并且你被指示使用你的数组匹配方法......

【讨论】:

  • 我猜,但 DomDocument 不会帮助我在特定段之间进行剪切,例如只是在“”和“
    ”之间,我的剪切功能可以,但我只是不知道如何将它合并到循环
  • @Kartik DOM 可以做到这一点
  • 我想我没有提到它,但我最初的问题仍然指出我不确定如何制作该功能,因为我无法弄清楚如何设计循环。我一般不是在寻找仅提取 html 的内容。输入可以是
    然后是 "class='foo' >" 和 "/b>" 然后是 "Welcome" 和 "here" cut 函数已经可以处理提取的内容,但是我不知道如何开始使用数组
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多