我写了这个函数,它将网页中的一些内容从我的数据库中删除。我的问题是使用我的数组变量$lang
,当我使用print_r($lang)
进行测试时,一切都按照我想要的方式工作,但是我无法在我的数据库中插入值,因为当我使用它时,它看起来像数组是空的它在第二个foreach
。
请大家,如何正确地在我的数据库中插入$lang
?以下是我的代码。非常感谢您的帮助。谢谢!
<?php
$html = file_get_html($url);
$links = array();
$lang = array();
foreach ($html->find('div.blockshadow h1') as $i => $title) {
$textValue = $title->plaintext;
if (strpos($textValue, 'VF') !== false) {
$lang[] = 'VF';
} elseif (strpos($textValue, 'VOSTFR') !== false) {
$lang[] = 'VOSTFR';
} elseif (strpos($textValue, 'VO') !== false) {
$lang[] = 'VO';
}
}
foreach ($html->find('div.blockshadow iframe') as $key => $a) {
$linkUrl = $a->src;
$wpdb->insert(
$table_name, array(
'Idioma' => $lang,
'Calidad' => ucwords("HDRIP"),
'Enlace' => $linkUrl,
'PID' => $return['ID'],
'Tipo' => '3',
)
);
}
答案 0 :(得分:1)
如果您不打算将数据拆分为多个表格,并希望将其全部保存在一个列中,则可以使用json_encode / serialize。
你选择哪一个都取决于你,但保持一致。
当您读出数据时,只需使用json_decode / unserialize即可获得初始数组。
类似的东西:
$data = json_encode([
'Idioma' => $lang,
'Calidad' => ucwords("HDRIP"),
'Enlace' => $linkUrl,
'PID' => $return['ID'],
'Tipo' => '3',
]);
$wpdb->insert($table_name, $data);
为了阅读,您首先要像平常一样从表中选择数据,但在使用之前,您必须json_decode / unserialize生成此数据的列。
答案 1 :(得分:0)
使用implode函数将数组转换为字符串,并检查值是否为空,如下所示。
$newLang = "";
if(!empty($lang))
{
$newLang = implode(',',$lang);
}
并且对数据库使用$newLang
变量,也要在foreach循环中插入数组中存在的所有值,然后使用上面的方法,如果你想要每个循环的特定值,那么使用$newLang[$key]
。
希望这有帮助。
PS:你不能直接将数组插入表格。