gpt4 book ai didi

php - For 循环遍历命名文件夹以读取每个 .txt 文件名和内容

转载 作者:搜寻专家 更新时间:2023-10-31 20:53:20 25 4
gpt4 key购买 nike

下面的脚本获取位于“myplugin”文件夹(脚本本身所在的文件夹)中的命名文件,并在其上运行 file_get_contents() 以将内容加载到内存中,然后在之前对内容进行一些预处理最后通过 wp_insert_post 方法将其作为帖子插入到 WordPress 数据库中。

$my_post3 = array();
$my_post3['post_title'] = 'Privacy Policy';
if(file_exists(ABSPATH.'/wp-content/plugins/myplugin/pages/privacy_policy.txt'))
{
$my_privacy_policy = file_get_contents(ABSPATH.'/wp-content/plugins/myplugin/pages/privacy_policy.txt');
}
else
{
$my_privacy_policy = "";
}
$my_post3['post_content'] = addslashes($my_post3_replace);
$my_post3['post_type'] = 'page';
$my_post3['post_status'] = 'publish';
wp_insert_post($my_post3);

这个方法很管用。但是,这种方法迫使我为每个要用作新页面基础的文件编写不同的例程。

我想做的是创建一个名为“pages”的文件夹并将我的 .txt 文件放入其中,然后对文件夹的内容运行 for 循环,为文件夹中的每个文件创建一个新页面.我想使用文件名(减去 .txt 扩展名)作为页面的名称。

例如,pages 文件夹可能有这些文件:

关于我们.txt联系我们.txt

例程将导致在 WordPress 站点中创建两个新页面,一个名为“关于我们”的页面包含在该文件中找到的内容。另一页当然是包含该文件内容的“联系我们”。

通过这种方式,我可以将无限数量的已命名和预填充的 .txt 文件放入该文件夹,当我激活我的插件时,它会创建这些页面。

我只需要有关 for 循环以及如何引用文件夹和文件的帮助。

我还将有一个名为“posts”的文件夹,它对帖子的作用与此例程对页面的作用相同。

在此先感谢您的帮助和建议。

根据@clientbucket 回答更新:

DEFINE ('PAGES', './pages/');
$directory_pages = new DirectoryIterator(PAGES);
foreach ($directory_pages as $files) {
if ($files_pages->isFile()) {
$file_name_page = $files_pages->getFilename();
$my_page_content = file_get_contents(PAGES. $file_name_page);
$my_page['post_content'] = addslashes($my_page_content);
$my_page['post_title'] = $file_name_page;
$my_page['post_type'] = 'page';
$my_page['post_status'] = 'publish';
wp_insert_post($my_page);
}
}

DEFINE ('POSTS', './posts/');
$directory_posts = new DirectoryIterator(POSTS);
foreach ($directory_posts as $files_posts) {
if ($files_posts->isFile()) {
$file_name_post = $files_posts->getFilename();
$my_post_content = file_get_contents(POSTS. $file_name_post);
$my_post['post_content'] = addslashes($my_post_content);
$my_post['post_title'] = $file_name_post;
$my_post['post_type'] = 'post';
$my_post['post_status'] = 'publish';
$post_id = wp_insert_post($my_post);
stick_post($post_id);
}
}

fatal error :未捕获异常“UnexpectedValueException”,消息为“DirectoryIterator::__construct(./pages/) [directoryiterator.--construct]:无法打开目录:C:\xampplite\htdocs 中没有这样的文件或目录”\mytestsite\wp-content\plugins\myplugindirectory\myplugin.php:339

第 339 行在这里 > $directory_pages = new DirectoryIterator(PAGES);

最佳答案

这是您可以尝试的另一种方法。

DEFINE ('PAGES', './pages/'); //Define the directory path
$directory = new DirectoryIterator(PAGES); //Get all the contents in the directory
foreach ($directory as $files) { //Check that the contents of the directory are each files and then do what you want with them after you have the name of the file.
if ($files->isFile()) {
$file_name = $files->getFilename();
$my_page = file_get_contents(PAGES. $file_name); //Collect the content of the file.
} else {
//Insert nothing into the $my_privacy_policy variable.
}
echo $my_page; // Do what you want with the contents of the file.
}

关于php - For 循环遍历命名文件夹以读取每个 .txt 文件名和内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5287843/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com