0

更新:此代码到目前为止有效。还在吐槽。

$trimmed = file('http://www.edvizenor.com/mercy/love/dm8.php');

foreach ($trimmed as $line_num => $line) 
{


if(preg_match("/<td class=\"num\">/",  $trimmed[$line_num], $matches))

  {   
 $num++;
  }


  $Content[$num] .= $trimmed[$line_num];




}

// Example array! 
echo $Content[6];

////

结束更新


我正在尝试使用 php 将表格内容放入数组中。我想将每个数字之后的所有段落都放入一个数组中。

这是网址:http ://edvizenor.com/mercy/love/dm8.php

我需要将每个段落编号的文本内容以及段落编号也放入一个数组中。一旦我有了它,我想将它们保存在一个文件夹中,并保存到一个以段落编号命名的 txt 文件中。

例如,在我将内容放入正确的数组之后,如果我想调用第 #832 段,那么我会做这样的事情:

$par = file_get_contents("353.txt"); 
// Need code to get only number
echo $num;
echo "<br>";
echo $par;

// should echo out:
353 
When Mother left for the chapel and I stayed to set the room in order,
I heard these words: Tell all the sisters that I demand that they live
in the spirit of faith towards the superiors at this present time. I 
begged my confessor to release me from this duty. 

我想过将整个内容放入一个字符串并“爆炸”;

$Content = file_get_contents("http://edvizenor.com/mercy/love/dm8.php");
$ContentArray = explode("<td class=\"num\">", $Content);

但这变得越来越复杂。所以我停止了它。

有关执行此操作的最佳方法的任何想法。我一共有1868个段落和内容。所以复制和粘贴将是很多工作。值得庆幸的是,所有的 html 都是一样的,所以我应该能够找到一个模式并相应地做我想做的事情。但我想不通,所以我求助于 StackOverflow 上的聪明人 :)

4

1 回答 1

0

这个想法是将url的内容抓取到一个变量中,然后使用domxpath对其进行查询并将其循环到数组中。

$dom = new DOMDocument();
@$dom -> loadHTML($html);
$xpath = new DOMXPath($dom);

$nums = $xpath->query("//td[@class='num']");
$paragraphs = $xpath->query("//td[@class='num']/following::td[1]");

for($j = 0; $j < $nums->length; $j++){
    $num = $nums->item($j)->nodeValue;
    $para = $paragraphs->item($j)->nodeValue;

    $para_array[$num] = $para;
}

这是示例结果。 http://randtest.site11.com/

于 2012-09-11T02:28:58.597 回答