我可以将 HTML 文本转储到变量中吗?


Can I dump an HTML text into a variable?

嗨,伙计们,我的问题是我有一个索引"link/index.html",我想将一些特定的数据放入数组中。页面的源代码与此类似

<tags>
.....*
</tags>
<span id="AA1"><a href="link/AA1">+</a><span title="1">AA1</span><a href="link/BB1">BB1</a><a href="link/CC1">CC1</a></span><br>
<span id="AA2"><a href="link/AA2">+</a><span title="2">AA2</span><a href="link/BB2">BB2</a><a href="link/CC2">CC2</a></span><br>
<span id="AA3"><a href="link/AA3">+</a><span title="3">AA3</span><a href="link/BB3">BB3</a><a href="link/CC3">CC3</a></span><br>
<span id="AA4"><a href="link/AA4">+</a><span title="4">AA4</span><a href="link/BB4">BB4</a><a href="link/CC4">CC4</a></span><br>
<span id="AA5"><a href="link/AA5">+</a><span title="5">AA5</span><a href="link/BB5">BB5</a><a href="link/CC5">CC5</a></span><br>
<span id="AA6"><a href="link/AA6">+</a><span title="6">AA6</span><a href="link/BB6">BB6</a><a href="link/CC6">CC6</a></span><br>
<span id="AA7"><a href="link/AA7">+</a><span title="7">AA7</span><a href="link/BB7">BB7</a><a href="link/CC7">CC7</a></span><br>
<span id="AA8"><a href="link/AA8">+</a><span title="8">AA8</span><a href="link/BB8">BB8</a><a href="link/CC8">CC8</a></span>
<tags>
.....*
</tags>

我希望结果是这样的

$line1 = {
$variable1="AA1", $variable2="BB1", $variable3="CC1"
}
$line2 = {
$variable1="AA2", $variable2="BB2", $variable3="CC2"
}
...

那么我该如何使用PHP或JavaScript呢?

从字面上看,将其转储到PHP数组中,如下所示:

$mainarray = array();
array_push($mainarray, array("var1"=>"AA1", "var2" => "BB1", "var3" => "CC1");

然后,您可以轻松地将其 json 编码为如下所示的字符串格式:

json_encode($mainarray);

如果您希望在循环中执行此操作,可以执行以下操作:

for($i =0; $i<10000; $i++)
{
    array_push($mainarray, array("var1"=>"AA".$i, "var2" => "BB".$i, "var3" => "CC".$i);
}

以上将在数组结构中,如下所示:

Array
(
    [0] => 
    (
        var1 = 'AA0'
        var2 = 'BB0'
        var3 = 'CC0'
    ),
    [1] => 
    (
        var1 = 'AA1'
        var2 = 'BB2'
        var3 = 'CC3'
    )
    [2] => 
    (
        var1 = 'AA2'
        var2 = 'BB2'
        var3 = 'CC2'
    )
    .... And so on
)

尽管当您考虑它时,如果它是顺序的,则实际上并不需要数组来执行此操作,只需在想要回显数据时遍历数字即可。例如,如果要从数据库中检索值,则可以执行以下操作:

$result = mysqli_query($connection, "query...");
while($row = mysqli_fetch_row($result))
{
    array_push($mainarray, array("var1"=>$row['var1'], "var2" =>$row['var2'], "var3" => $row['var3']);
}

如果您尝试将数据动态地放入数组中,则可以使用 jquery 轻松完成。

我下面的代码会将结果输出到div。您可以对数据执行所需的操作。

var myArray = [];
$(document).ready(function() {
  var rows = $('pre > span');
  $.each(rows, function(i, row) {
    var spans = $(row).find('a');
    var arrayObj = {};
    var n = 1;
    arrayObj[0] = $(row).find('span').text();
    $.each(spans, function(i, span) {
      arrayObj[n] = $(span).text();
      n += i;
    });
    myArray.push(arrayObj);
  });
  // this part add the vals into a dom element
  // the array objects look like this: { 1: 'text', 2: 'text' }
  // you could use an array instead of an object, or name the keys however you like.
  // I did it this way so I could easily iterate over them like an array.
  $.each(myArray, function(i, vals) {
    $('#result').append("<p>");
    $.each(vals, function(n, val) {    
      $('#result').append(val + ', ');
    });
    $('#result').append("</p>");
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<pre>
<span id="AA1">
  <a href="link/AA1">+</a><span title="1">AA1</span><a href="link/BB1">BB1</a><a href="link/CC1">CC1</a>
</span><br>
<span id="AA2">
  <a href="link/AA2">+</a><span title="2">AA2</span><a href="link/BB2">BB2</a><a href="link/CC2">CC2</a>span><br>
<span id="AA3">
  <a href="link/AA3">+</a><span title="3">AA3</span><a href="link/BB3">BB3</a><a href="link/CC3">CC3</a>
</span>
</pre>
<div id="result"></div>