我不知道要使用什么标题,因为这是一个非常不寻常的情况。请让我解释一下。我有一个包含多个页面的网站,每个网站都有不同的元标记,例如标题,描述和关键字。所以我制作了这段代码:
define('title', 0);
define('keywords', 1);
define('desc', 2);
$tags = array(
'index' => array('My site', 'php, tricks', 'My site about php'),
'about' => array('About', 'etc, about', 'About this site'),
'other' => array('Other', 'some, shit', 'Some other shit')
);
我的网站页面如下所示:mysite.com/index
,mysite.com/about
等等,因此,我有一个目录,其中包含所有名为index.php
,about.php
和contact.php
的页面等等。因此,如果我想添加一个名为contact的新页面,我必须创建一个名为$tags = array(
'index' => array('My site', 'php, tricks', 'My site about php'),
'about' => array('About', 'etc, about', 'About this site'),
'other' => array('Other', 'some, shit', 'Some other shit'),
'contact' => array('Contact', 'contact, whatever', 'Contact form')
);
的文件,并在我的数组中添加一个新行,如下所示:
column-
到目前为止,此工作正常。但是,现在我有一组以$tags = array(
'index' => array('My site', 'php, tricks', 'My site about php'),
'about' => array('About', 'etc, about', 'About this site'),
'other' => array('Other', 'some, shit', 'Some other shit'),
$column_pages => array($col_title, $col_keywords, $col_desc)
);
开始的页面,我希望它们能够自动添加标签,而无需在代码中添加任何行。像这样:
$column_page = scandir("content");
foreach ($column_page as $value) {
if(preg_match("/column/i", $value)) {
$column_pages = $value;
}
}
我想我应该扫描我的目录中的文件以获取名称,然后过滤那些以“column - ”开头的文件:
column-
但在此之后我有点卡住,我不知道如何进一步。我现在应该怎么做?
我需要的是,用清楚的话说,我想扫描特定文件夹/目录中的所有文件名,检查其名称是否以PHP
开头,然后生成在column-news
例如,假设截至目前我有3个以“column-”开头的文件,分别是:column-variety
,column-radio
和{{1 }};我的预期结果与下面的代码完全相同:
$tags = array(
'index' => array('My site', 'php, tricks', 'My site about php'),
'about' => array('About', 'etc, about', 'About this site'),
'other' => array('Other', 'some, shit', 'Some other shit'),
'column-news' => array('News', 'some, news', 'Column with news'),
'column-variety' => array('News', 'some, variety', 'Column with variety'),
'column-radio' => array('News', 'some, radio', 'Column with radio')
);
谢谢。
答案 0 :(得分:0)
这是一种做法
扫描所有目录
执行regex
匹配文件名中的模式
存储在数组中
代码
$pattern = "/^column-*/i" //i for making it case insensitive, ^ denotes start of name
$path = "some/dir/path/";
$files = scandir($path);
foreach ($files as $file_name) {
if(preg_match($pattern, $file_name){
$column_pieces = explode("-", $file_name);
$tags = array($file_name =>
array($column_pieces[0], $column_pieces[1], $column_pieces[2])
);
}
}
在这行代码中:
$tags = array($file_name =>
array($column_pieces[0], $column_pieces[1], $column_pieces[2])
);
$file_name
将是您的密钥,$column_pieces[XX]
只是为了向您展示如何完成,您可以在其中保存其他可以从DB获取的详细信息