php
//php 版本⑤0以上
$file="file.txt";//文件路径
$arr=file($file);//将文件内容读取到数组
//在数组中将文件内容格式化
foreach ($arr as $k=$txt)
{
$arr[$k]='a href="'.$k.'art='.str_replace(" ","-",$txt).'"'.$txt.'/a';
}
//将格式化后的内容写入文件
if(file_put_contents("D.txt",$arr)){echo "OK";}
程序实现:通过批量替换的方式 把文章中和库里对应的关键字替换成带有指定链接锚文本.
首先第一步:在phpcms后台管理中按照步骤 系统设置 相关设置 关联链接管理 添加关键词
要达到的效果如下
第一步:进入网站后台进行设置
①.、首先登录网站管理后台 选择 系统-系统基本参数-核心设置找到关键词替换(是/否)一栏 选择 是
③. 在后台的 采集- 文档关键词维护一栏 对关键词 加上需要的链接!
这时有个小问题需要解决下 经过以上的几个步骤 只能实现 在关键词 一栏中填写的关键词 才会有链接! 而内容出现的并没链接 所以 我们需要通过下一步来实现 内容页出现链接
第二步:打开/include/arc.archives.class.php进行代码替换,
找到下面代码
foreach($kws as $k) { $k = trim($k); if($k!="") { if($i $maxkey) { break; } $myrow = $this-dsql-GetOne("select * from dede_keywords where keyword='$k' And rpurl" "); if(is_array($myrow)) { $karr[] = $k; $GLOBALS['replaced'][$k] = 0; $kaarr[] = "a href='{$myrow['rpurl']}'u$k/u/a"; } $i◆◆; } }
替换为:
global $dsql; $query="SELECT * FROM dede_keywords WHERE rpurl" ORDER BY rank DESC"; $dsql-SetQuery($query); $dsql-Execute(); while($row = $dsql-GetArray()) { $key = trim($row['keyword']); $key_url=trim($row['rpurl']); $karr[] = $key; $kaarr[] = "a href='$key_url' target='_blank'u$key/u/a"; }
这样我们就设置好了,但是我们一般尽量设置核心关键词,不要次数过多
①.,最简单的方法修改固定链接
wordpress的自带的固定链接可以改变链接样式,但是如果格式没写好,可能给你的页面访问带来困难,链接中特殊符号 空格,还是包含中文.固定链接格式:/%postname%.html 这个样就为中文,但是也是可行的.我个人的格式是/archives/%post_id%.html.
②.,插件也可以实现
单独为页面添加.html后缀
安装:.html on PAGES 插件实现,启用插件后无需任何设置.
分类及页面同时添加.html后缀
安装:.html in category and page url 插件,启用插件后需要到插件设置页面保存一下设置.
另外,安装插件后可能会造成日志分页翻页错误.....
③既然可以插件当然代码可以
将下面代码添加主题functions.php中即可
// 页面链接添加html后缀
add_action('init', 'html_page_permalink', -1);
function html_page_permalink() {
global $wp_rewrite;
if ( !strpos($wp_rewrite-get_page_permastruct(), '.html')){
$wp_rewrite-page_structure = $wp_rewrite-page_structure . '.html';
添加后,需要到固定链接设置页面,重新保存一下固定链接设置,否则不会生效.
上述代码适合伪静态的固定链接形式使用,比如:
/%postname%.html
/%post_id%.html
另外,如果同时使用了"给WordPress分类目录和页面添加斜杠"一文中的代码,还需要将该文中的代码修改为:
// 添加斜杠
function nice_trailingslashit($string, $type_of_url) {
if ( $type_of_url != 'single' $type_of_url != 'page' )
$string = trailingslashit($string);
return $string;
排除页面文件,否则页面链接.html后面也会自动加上斜杠.
/**
* 按长度排序(降序)
*/
function _sortDesc($a, $b) {
return (strlen($a[0]) strlen($b[0])) ? 1 : -1;
$linkDefs = array(
'茶叶,111.htm',
);
$linkMap = array();
foreach($linkDefs as $row) {
$linkMap[] = explode(',', $row);
$str = '
这儿是茶叶的链接.br /
这儿是中国茶叶大观的链接.br /
这儿是a href="111.html"茶叶/a的现有链接.br /
';
//把原有的链接替换成文字
foreach($linkMap as $row) {
//关键字从长至短排序
usort($linkMap, '_sortDesc');
//var_dump($linkMap);
$tmpKwds = array(); //存放暂时被替换的子关键字
foreach($linkMap as $i=$row) {
list($kwd, $url) = $row;
for($j=$i◆1; $jcount($linkMap); $j◆◆) {
$subKwd = $linkMap[$j][0];
if(strpos($kwd, $subKwd) !== false) {
$kwd = str_replace($subKwd, $tmpKwd, $kwd);
$tmpKwds[$tmpKwd] = $subKwd;
//把文字替换成链接
//把代替子关键字的字符串替换回来
foreach($tmpKwds as $tmp=$kwd) {
$str = str_replace($tmp, $kwd, $str);
echo $str;
以上程序输出:
这儿是a href="111.htm"茶叶/a的链接.br /
这儿是a href="111.htm"茶叶/a的现有链接.br /