使用phpQuery将HTML ul/li树转换为PHP数组
我想用于解析DOM元素。下面是我想使用PHP递归函数导入MySQL数据库的代码 将树存储为类别的MySQL db(带有sub、sub、…、categories) 这是我的伪代码:使用phpQuery将HTML ul/li树转换为PHP数组,php,mysql,phpquery,Php,Mysql,Phpquery,我想用于解析DOM元素。下面是我想使用PHP递归函数导入MySQL数据库的代码 将树存储为类别的MySQL db(带有sub、sub、…、categories) 这是我的伪代码: function getCategories( $pq_object, $last_generated_mysql_id ) { // for every element of $pq_object on same lvl { // insert into mysql $pq_objec
function getCategories( $pq_object, $last_generated_mysql_id )
{
// for every element of $pq_object on same lvl
{
// insert into mysql $pq_object->a->name
// and with categorie_id_parent as $last_generated_mysql_id if has parent
// going deeper for every child
getCategories( $pq_object->children(), mysql_insert_id() );
}
}
谢谢你的帮助我真的做到了:
function getCats( $categorie_id_parent, $cats )
{
echo "<ul>";
foreach ( $cats as $ch )
{
$categorie_nom = mysql_real_escape_string( pq($ch)->find("a:first")->text() );
// Inserting categories
$query_categorie = "SELECT categorie_id FROM categories WHERE categorie_id_parent='".$categorie_id_parent."' AND categorie_nom LIKE '".$categorie_nom."' LIMIT 1";
$result_categorie = mysql_query( $query_categorie ) or die ( mysql_error() );
$categorie_id = 0;
if ( mysql_num_rows( $result_categorie ) )
{
$row_categorie = mysql_fetch_assoc( $result_categorie );
$categorie_id = $row_categorie['categorie_id'];
}
else
{
$query_insert = "INSERT INTO categories (categorie_id_parent, categorie_nom) VALUES ('".$categorie_id_parent."', '".$categorie_nom."')";
mysql_query( $query_insert ) or die ( mysql_error() );
$categorie_id = mysql_insert_id();
}
// if we have any subcategories
if ( pq($ch)->children()->children()->length )
{
echo "<li>".pq($ch)->find("a:first")->text()."</li>";
// going deeper
getCats( $categorie_id, pq($ch)->children()->children() );
}
// If no subcategories, show the last link name and href
else
echo "<li>".pq($ch)->find('a:first')->text()." ".pq($ch)->find('a:first')->attr('href')."</li>";
}
echo "</ul>";
}
函数getCats($categorie\u id\u parent,$cats)
{
回声“- ”;
foreach(猫作为$ch)
{
$categorie\u nom=mysql\u real\u escape\u string(pq($ch)->find(“a:first”)->text();
//插入类别
$query\u categorie=“从categorie\u id\u parent=“$categorie\u id\u parent.”“和categorie\u nom LIKE.”的类别中选择categorie\u id.“'LIMIT 1”;
$result\u categorie=mysql\u query($query\u categorie)或die(mysql\u error());
$categorie_id=0;
if(mysql\u num\u行($result\u categorie))
{
$row\u categorie=mysql\u fetch\u assoc($result\u categorie);
$categorie_id=$row_categorie['categorie_id'];
}
其他的
{
$query_insert=“插入类别(分类id父项,分类名称)值(“$CATEGRIE_id父项。”,“$CATEGRIE_名称。”)”;
mysql\u query($query\u insert)或die(mysql\u error());
$categorie_id=mysql_insert_id();
}
//如果我们有任何子类别
if(pq($ch)->children()->children()->length)
{
echo“
- ”.pq($ch)->查找(“a:first”)->文本(); //深入 getCats($categorie_id,pq($ch)->children()->children()); } //如果没有子类别,则显示最后一个链接名称和href 其他的 echo“
- ”.pq($ch)->find('a:first')->text()。”.pq($ch)->find('a:first')->attr('href')。“ ”; } 回声“
function getCats( $categorie_id_parent, $cats )
{
echo "<ul>";
foreach ( $cats as $ch )
{
$categorie_nom = mysql_real_escape_string( pq($ch)->find("a:first")->text() );
// Inserting categories
$query_categorie = "SELECT categorie_id FROM categories WHERE categorie_id_parent='".$categorie_id_parent."' AND categorie_nom LIKE '".$categorie_nom."' LIMIT 1";
$result_categorie = mysql_query( $query_categorie ) or die ( mysql_error() );
$categorie_id = 0;
if ( mysql_num_rows( $result_categorie ) )
{
$row_categorie = mysql_fetch_assoc( $result_categorie );
$categorie_id = $row_categorie['categorie_id'];
}
else
{
$query_insert = "INSERT INTO categories (categorie_id_parent, categorie_nom) VALUES ('".$categorie_id_parent."', '".$categorie_nom."')";
mysql_query( $query_insert ) or die ( mysql_error() );
$categorie_id = mysql_insert_id();
}
// if we have any subcategories
if ( pq($ch)->children()->children()->length )
{
echo "<li>".pq($ch)->find("a:first")->text()."</li>";
// going deeper
getCats( $categorie_id, pq($ch)->children()->children() );
}
// If no subcategories, show the last link name and href
else
echo "<li>".pq($ch)->find('a:first')->text()." ".pq($ch)->find('a:first')->attr('href')."</li>";
}
echo "</ul>";
}