有时需要把网站中的文章导成word文档,而且要给文章的增加关键词链接,而且,只加一个关键词,比如关键词,php技术在文章中出现了3次,只对第一次出现添加连接。
以下是实现代码,主要是函数 str_replace()_once($needle, $replace, $haystack),实现了只添加一次关键词链接的功能。
<?php
/**
* 导出word格式文档
* 只添加一次关键词链接
* edit www.
*/
//var_dump($_SERVER["HTTPS"]);die;
class word
{
function start()
{
ob_start();
echo ‘<html xmlns:o=”urn:schemas-microsoft-com:office:office”
xmlns:w=”urn:schemas-microsoft-com:office:word”
xmlns=”http://www.w3.org/TR/REC-html40″>’;
}
function save($path)
{
print “</html>”;
$data = ob_get_contents();
ob_end_clean();
$this->wirtefile ($path,$data);
}
function wirtefile ($fn,$data)
{
$fp=fopen($fn,”wb”);
fwrite($fp,$data);
fclose($fp);
}
}
$db = mysql_connect()(‘localhost’, ‘root’, ’123123′) or die(“Could not connect to database.”);//连接数据库
mysql_select_db(‘test’); //选择数据库
$sql = “select info.itemid,info.title,info.tag,con.content from csign_info_22 as info left join csign_info_data_22 as con on con.itemid = info.itemid”;
mysql_query()(‘set names “utf8″‘);
$res=mysql_query($sql, $db);
while($info=mysql_fetch_array($res))
{
if($info['tag']){
$tagexp = explode()(‘ ‘,$info['tag']);
foreach($tagexp as $k=>$v){
$tagstr .= ‘<a href=/blog_article/”http_/www/invest/search-htm-kw-’.$v.’.html”>’.$v.’</a> ’;_/p/index.html>
if(strpos($info['content'],$v)){
$info['content'] =str_replace_once($v,”<a href=http://www./invest/search-htm-kw-”.$v.”.html target=_blank >”.$v.”</a>”,$info['content']);
}
}
}
//echo $info['content'];die;
$html = ‘<p align=”center”>’.$info['title'].’</p><p>’.$info['content'].’</p>’;
if($tagstr){$html.= ‘<p>关键词: ’.$tagstr.’</p>’;}
$html .= ‘<p>本文由<a href=/blog_article/”http_/www/”></a>收集整理,更多信息请访问<a/index.html href=/blog_article/”http_/www/”>Tiandone</a></p>’;_br/index.html>
$word = new word();
$word->start();
//$html = “aaa”.$i;
$title = iconv(“UTF-8″,”GB2312″,$info['title']);
//echo $title;die;
$wordname = ‘E:/web/paypal/product/tiandone/’.$title.”.doc”;//存放目录
//echo $wordname;die;
echo $html;
$word->save($wordname);
ob_flush();//每次执行前刷新缓存
flush();
//print_r($info);die;
//die;
}
//只匹配一次关键词 重复的不匹配
function str_replace_once($needle, $replace, $haystack) {
// Looks for the first occurence of $needle in $haystack
// and replaces IT with $replace.
$pos = strpos($haystack, $needle);
if ($pos === false) {
// Nothing found
return $haystack;
}
return substr_replace($haystack, $replace, $pos, strlen($needle));
}
?>
以上就是今天php教程给出的代码,供大家学习研究之用。
学php就来吧。
您可能感兴趣的文章:
php生成excel或word文档的最简单方法php生成word文档(读取数据库)
php生成word最简单的例子
php使用phpword生成word文档的例子
php生成word文件的简单范例
php 生成 导出word(可包含图片)的代码
php生成word的例子
php使用phpword生成word文档
计算数组中不为空的个数。
方法一:
’1′=>’11′,
’2′=>’22′,
’3′=>’33′,
’4′=>”
);
print_r(count(array_filter($arr)));
方法二:
0 => ‘aa’,
1 => ‘bb’,
2 => ‘cc’,
3 => ”
);
function filter_empty($var) {
return ! empty ( $var );
}
print_r(array_filter($arr,’filter_empty’));
就是这么简单,主要是php数组函数的应用。
在php5之前,使用一个类,只需要直接使用include/require将文件引入。
在PHP5中,使用未定义的类时会自动调用__autoload函数,可以通过编写__autoload函数让php自动加载类。
例子:
function __autoload($class)
{
$file = $class . ‘.php’;
if (is_file($file)) {
require_once($file);
}
}
$person = new Person();
//by www.
?>
当然,可以自定义__autoload加载类的规则。
如果不希望自动加载时调用__autoload,而是调用我自己写的函数(或类方法),可以使用spl_autoload_register来注册autoload函数。
如下面的代码所示:
<?php
function loader($class)
{
$file = $class . ‘.php’;
if (is_file($file)) {
require_once($file);
}
}
spl_autoload_register(‘loader’);
$person = new Person();类方法:
class Loader
{
public static function loadClass($class)
{
$file = $class . ‘.php’;
if (is_file($file)) {
require_once($file);
}
}
}
spl_autoload_register(array(‘Loader’, ‘loadClass’));
$person = new Person();
//by www.
?>