Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/227.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php DOMDocument-列出数组的子元素_Php - Fatal编程技术网

php DOMDocument-列出数组的子元素

php DOMDocument-列出数组的子元素,php,Php,对于以下HTML: <html> <body> <div whatever></div> <div id="archive-wrapper"> <ul class="archive-list"> <li><div><a href="#1">A</a></div></li> <li><div><a href="

对于以下HTML

<html>
<body>
<div whatever></div>
<div id="archive-wrapper">
<ul class="archive-list">
    <li><div><a href="#1">A</a></div></li>
    <li><div><a href="#2">B</a></div></li>
    <li><div><a href="#3">C</a></div></li>
</ul>
</div>
</body>


我怎样才能用PHP-DOMDocument()以最有效的方式检索包含
(#1、#2、#3)
的数组?这并不是说我没有尝试过任何东西,也不是说我想要一个已经完成的代码,我只是需要知道一些指导原则来完成它,并自己理解它。谢谢:)

使用PHP DOM意味着什么?你是说使用PHP和JQuery吗?您可以设置
  • 你可以把所有这些都放到一个表单中,然后把它发布到一个脚本中
  • 您还可以环绕一个仅存储所选内容的select 资料
  • 更好的方法是使用jquery将项目发布到 相同的页面,并使用php作为服务器端的处理器 军火?从长远来看,这是最好的,因为它是最新的方式 与html和服务器端脚本交互
例如,您可以尝试以下任一方法:

$("#form").submit(function(){ //form being the #form id
    var items = [];
    $("#archive-list li").each(function(n){
        items[n] = $(this).html();
    });

   $.post(
      "munipilate-data.php", 
      {items: items}, 
      function(data){
          $("#result").html(data);
      });
});

你说的PHP DOM是什么意思?你是说使用PHP和JQuery吗?您可以设置
  • 你可以把所有这些都放到一个表单中,然后把它发布到一个脚本中
  • 您还可以环绕一个仅存储所选内容的select 资料
  • 更好的方法是使用jquery将项目发布到 相同的页面,并使用php作为服务器端的处理器 军火?从长远来看,这是最好的,因为它是最新的方式 与html和服务器端脚本交互
例如,您可以尝试以下任一方法:

$("#form").submit(function(){ //form being the #form id
    var items = [];
    $("#archive-list li").each(function(n){
        items[n] = $(this).html();
    });

   $.post(
      "munipilate-data.php", 
      {items: items}, 
      function(data){
          $("#result").html(data);
      });
});

你说的PHP DOM是什么意思?你是说使用PHP和JQuery吗?您可以设置
  • 你可以把所有这些都放到一个表单中,然后把它发布到一个脚本中
  • 您还可以环绕一个仅存储所选内容的select 资料
  • 更好的方法是使用jquery将项目发布到 相同的页面,并使用php作为服务器端的处理器 军火?从长远来看,这是最好的,因为它是最新的方式 与html和服务器端脚本交互
例如,您可以尝试以下任一方法:

$("#form").submit(function(){ //form being the #form id
    var items = [];
    $("#archive-list li").each(function(n){
        items[n] = $(this).html();
    });

   $.post(
      "munipilate-data.php", 
      {items: items}, 
      function(data){
          $("#result").html(data);
      });
});

你说的PHP DOM是什么意思?你是说使用PHP和JQuery吗?您可以设置
  • 你可以把所有这些都放到一个表单中,然后把它发布到一个脚本中
  • 您还可以环绕一个仅存储所选内容的select 资料
  • 更好的方法是使用jquery将项目发布到 相同的页面,并使用php作为服务器端的处理器 军火?从长远来看,这是最好的,因为它是最新的方式 与html和服务器端脚本交互
例如,您可以尝试以下任一方法:

$("#form").submit(function(){ //form being the #form id
    var items = [];
    $("#archive-list li").each(function(n){
        items[n] = $(this).html();
    });

   $.post(
      "munipilate-data.php", 
      {items: items}, 
      function(data){
          $("#result").html(data);
      });
});

我建议您使用正则表达式来解析它

$html = '<html>
    <body>
       <div whatever></div>
       <div id="archive-wrapper">
       <ul class="archive-list">
            <li><div><a href="#1">A</a></div></li>
            <li><div><a href="#2">B</a></div></li>
            <li><div><a href="#3">C</a></div></li>
       </ul>
       </div>
    </body>';
$reg = '/a href=["\']?([^"\' ]*)["\' ]/';
preg_match_all($reg, $html, $m);
$arr = array_map(function($v){
    return trim(str_replace('a href=', '', $v), '"');
}, $m[0]);

print '<pre>';
print_r($arr);
print '</pre>';

我建议您使用正则表达式来解析它

$html = '<html>
    <body>
       <div whatever></div>
       <div id="archive-wrapper">
       <ul class="archive-list">
            <li><div><a href="#1">A</a></div></li>
            <li><div><a href="#2">B</a></div></li>
            <li><div><a href="#3">C</a></div></li>
       </ul>
       </div>
    </body>';
$reg = '/a href=["\']?([^"\' ]*)["\' ]/';
preg_match_all($reg, $html, $m);
$arr = array_map(function($v){
    return trim(str_replace('a href=', '', $v), '"');
}, $m[0]);

print '<pre>';
print_r($arr);
print '</pre>';

我建议您使用正则表达式来解析它

$html = '<html>
    <body>
       <div whatever></div>
       <div id="archive-wrapper">
       <ul class="archive-list">
            <li><div><a href="#1">A</a></div></li>
            <li><div><a href="#2">B</a></div></li>
            <li><div><a href="#3">C</a></div></li>
       </ul>
       </div>
    </body>';
$reg = '/a href=["\']?([^"\' ]*)["\' ]/';
preg_match_all($reg, $html, $m);
$arr = array_map(function($v){
    return trim(str_replace('a href=', '', $v), '"');
}, $m[0]);

print '<pre>';
print_r($arr);
print '</pre>';

我建议您使用正则表达式来解析它

$html = '<html>
    <body>
       <div whatever></div>
       <div id="archive-wrapper">
       <ul class="archive-list">
            <li><div><a href="#1">A</a></div></li>
            <li><div><a href="#2">B</a></div></li>
            <li><div><a href="#3">C</a></div></li>
       </ul>
       </div>
    </body>';
$reg = '/a href=["\']?([^"\' ]*)["\' ]/';
preg_match_all($reg, $html, $m);
$arr = array_map(function($v){
    return trim(str_replace('a href=', '', $v), '"');
}, $m[0]);

print '<pre>';
print_r($arr);
print '</pre>';

一个使用php文档的简单示例-

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

$linkArray = array();

foreach ($dom->getElementsByTagName('ul') as $li){
    foreach ($li->getElementsByTagName('li') as $a){
        foreach ($a->getElementsByTagName('a') as $link){
            $linkArray[] = $link->getAttribute('href');
        }
    }
}
或者,如果您只需要第1个
ul
,您可以简化为


一个使用php文档的简单示例-

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

$linkArray = array();

foreach ($dom->getElementsByTagName('ul') as $li){
    foreach ($li->getElementsByTagName('li') as $a){
        foreach ($a->getElementsByTagName('a') as $link){
            $linkArray[] = $link->getAttribute('href');
        }
    }
}
或者,如果您只需要第1个
ul
,您可以简化为


一个使用php文档的简单示例-

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

$linkArray = array();

foreach ($dom->getElementsByTagName('ul') as $li){
    foreach ($li->getElementsByTagName('li') as $a){
        foreach ($a->getElementsByTagName('a') as $link){
            $linkArray[] = $link->getAttribute('href');
        }
    }
}
或者,如果您只需要第1个
ul
,您可以简化为


一个使用php文档的简单示例-

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

$linkArray = array();

foreach ($dom->getElementsByTagName('ul') as $li){
    foreach ($li->getElementsByTagName('li') as $a){
        foreach ($a->getElementsByTagName('a') as $link){
            $linkArray[] = $link->getAttribute('href');
        }
    }
}
或者,如果您只需要第1个
ul
,您可以简化为




您想用jQuery还是php来实现它?@voidmain by php,谢谢:)在这种情况下,您需要在创建数组或将其发布到表单时使用php来构建列表。@unixmiah如何将其发布到表单帮助?在创建数组的同时,通过构建列表,你能做些什么?非常感谢:)您想用jQuery还是php来完成它?@voidmain by php,谢谢:)在这种情况下,您需要在创建数组或将其发布到表单时使用php来构建列表。@unixmiah如何将其发布到表单帮助?在创建数组的同时,通过构建列表,你能做些什么?非常感谢:)您想用jQuery还是php来完成它?@voidmain by php,谢谢:)在这种情况下,您需要在创建数组或将其发布到表单时使用php来构建列表。@unixmiah如何将其发布到表单帮助?在创建数组的同时,通过构建列表,你能做些什么?非常感谢:)您想用jQuery还是php来完成它?@voidmain by php,谢谢:)在这种情况下,您需要在创建数组或将其发布到表单时使用php来构建列表。@unixmiah如何将其发布到表单帮助?在创建数组的同时,通过构建列表,你能做些什么?非常感谢:)非常感谢您的完整答案,但我需要用PHP将检索到的数据保存到数据库中。这里有一个PHP类:非常感谢您的完整回答,但是我需要用PHP来将检索到的数据保存到数据库中。这里有一个PHP类:非常感谢您的完整回答,但是我需要用PHP来将检索到的数据保存到数据库中。这里有一个PHP类:非常感谢您的完整回答,但是我需要用PHP来将检索到的数据保存到数据库中。这里有一个PHP类:这是一个更好的例子。非常感谢,这帮助我更好地理解它。但是,如果在同一个HTML文档中有更多的链接呢?我如何具体地只获取Ul中Li中的那些?我将使用getElementsByTagName和getAttribute。下面是一个例子:我添加了一个编辑,显示了如何通过
ul
/
li
循环获取链接。非常感谢您花费时间。我从你的例子中学到了很多。祝你有一个美好的一天。这是一个更好的例子。非常感谢,这帮助我更好地理解它。但是,如果在同一个HTML文档中有更多的链接呢?我如何具体地只获取Ul中Li中的那些?我将使用getElementsByTagName和getAttribute。下面是一个例子:我添加了一个编辑,显示了如何通过
ul
/
li
循环获取链接。非常感谢您花费时间。我和你一起学习了很多