phpspider
phpspider copied to clipboard
当field有子项的时候,有些问题
当field有子项的时候,且只有一项,选出来是一个字符串的时候
return count($result) > 1 ? $result : $result[0]; //selector.php 158行
if (!empty($values) && !empty($conf['children'])) //phpspider.php 1784行
{
$child_values = array();
// 父项抽取到的html作为子项的提取内容
foreach ($values as $child_html)
{
// 递归调用本方法, 所以多少子项目都支持
$child_value = $this->get_fields($conf['children'], $child_html, $url, $page);
if (!empty($child_value))
{
$child_values[] = $child_value;
}
}
// 有子项就存子项的数组, 没有就存HTML代码块
if (!empty($child_values))
{
$values = $child_values;
}
}
这里将string做循环,请问是不是有点问题?
我也发现这里有问题子项能获得数据但存不进数据库。我是这么解决的:
else //phpspider.php 1862行
{
if (is_array($values))
{
if ($repeated)
{
$fields[$conf['name']] = $values;
}
else
{
//$fields[$conf['name']] = $values[0];
//这里增加代码替换上面的代码
foreach($values[0] as $k => $v)
{
$fields[$k]=$v;
}
}
}
else
{
$fields[$conf['name']] = $values;
}