我遇到了一些问题,让我的代码非常混乱,无法正确提交数据。目前,我正在抓取一个网站,其中包含许多图片并尝试收集所有图片并通过我的 WordPress the_content
选择进行相应的存储。
这是我到目前为止所做的事情,当我通过标准循环加载图像时,这几乎没有任何问题返回图像。
foreach ($html2->find('.entry-content img') as $image) {
$imageurl = $image->src;
$new = '<img src="' . $imageurl . '" style="height: auto; width: 100%;margin-bottom: 3px;">';
print $thecontent = htmlspecialchars($new); print '<br>';
} foreach ($html2->find('iframe') as $video) {
$videourl = $video->src;;
$new = '<iframe src="' . $videourl . '" scrolling="no" frameborder="0" width="100%" allowfullscreen="true" webkitallowfullscreen="true" mozallowfullscreen="true"></iframe>';
print $thecontent = htmlspecialchars($new); print '<br>';
}
上面的代码会返回一些包含 1 - 我们正在尝试收集的图像+视频的内容。
<img src="https://www.example.com/some-image-path-here.jpg" style="height: auto; width: 100%;margin-bottom: 3px;">
<img src="https://www.example.com/some-image-path-here.jpg" style="height: auto; width: 100%;margin-bottom: 3px;">
<img src="https://www.example.com/some-image-path-here.jpg" style="height: auto; width: 100%;margin-bottom: 3px;">
<img src="https://www.example.com/some-image-path-here.jpg" style="height: auto; width: 100%;margin-bottom: 3px;">
现在我正在尝试将内容上传到我的WordPress网站($content
以外的所有内容似乎都正常运行。
$content = $thecontent;
$my_post = array(
'post_title' => wp_strip_all_tags( trim( $title ) ),
'post_content' => $content,
'post_status' => 'publish',
'post_author' => 2,
'post_category' => array(2),
'post_date' => date('Y-m-d H:i:s')
);
$post_id = wp_insert_post( $my_post );
remove_filter('content_save_pre', 'wp_filter_post_kses');
remove_filter('content_filtered_save_pre', 'wp_filter_post_kses');
上面的代码在我的WordPress the_content
部分中返回以下内容,这是第一张图片,我该如何使用呢?
<img src="https://www.example.com/some-image-path-here.jpg" style="height: auto; width: 100%;margin-bottom: 3px;">
注意:存储WordPress数据的部分正在我们的初始解析循环中加载,但是在收集图像+视频的循环之外。
答案 0 :(得分:3)
每次循环你只需收集一条信息并将$thecontent
设置到该字段并打印出来。您需要将这些添加到一起以获取包含所有内容的字符串...
$thecontent = '';
foreach ($html2->find('.entry-content img') as $image) {
$imageurl = $image->src;
$new = '<img src="' . $imageurl . '" style="height: auto; width: 100%;margin-bottom: 3px;">';
$thecontent .= htmlspecialchars($new).'<br>';
}
foreach ($html2->find('iframe') as $video) {
$videourl = $video->src;;
$new = '<iframe src="' . $videourl . '" scrolling="no" frameborder="0" width="100%" allowfullscreen="true" webkitallowfullscreen="true" mozallowfullscreen="true"></iframe>';
$thecontent .= htmlspecialchars($new).'<br>';
}
print $thecontent;
注意在每个循环中我使用.=
将新内容附加到列表的末尾。打印出最终内容,应该使用