by 清泉
25. 一月 2010 19:41
解决
Warning: Cannot modify header information - headers already sent by ......
前几天装了个php的统计系统测试,发现报错
Warning: Cannot modify header information - headers already sent by ......
今天又装openads,还是出现这个问题。怒了。上网找了半天,有人说要在文件开头写上
ob_start();
失败。
打开 php.ini 然后把 output_buffering 设为 on 。重起WEB服务器。 [更多...]
by 清泉
25. 一月 2010 19:36
网站管理(VSFTPD):
一、安装所需软件包
apt-get install vsftpd mysql-server mysql-client libpam-mysql
libpam-mysql 这个包可以让PAM读取MySQL数据来验证用户信息,其它的软件包就不用解译了吧!
二、设置FTP用户权限与家目录
在操作第一步骤完后,系统会自动创建系统用户名:ftp,这个用户就是vsftpd默认的匿名用户,没有其它权限。在我的工作环境下这个用户名的家目录是/home/ftp,RH系统ftp家目录是/var/ftp。呵呵,这都是无关紧要的,可以自由设置!你也可以自定义ftp匿名用户,并作相关修改,下载教程中用户ftp也应修改成你自定义的用户名。
默认/home/ftp权限并不是用户ftp,我们要修改下。
[更多...]
by 清泉
17. 十二月 2009 11:04
大多数的网站都是基于数据库的动态页面。也就是说你的页面相当于一个从数据库系统(比如MySQL)获得数据的应用程序,解析数据,然后呈现给用户。大多数的数据并不是经常更新,我们使用数据库的原因是可以非常方便的更新数据和内容。
大量过多的数据库连接和查询将会导致服务器过载或瘫痪。每查询一次数据库,脚本就链接一次DBMS,然后DBMS将返回查询的结果。这非常浪费时间和资源,如果频率非常高的话,可能会导致数据库出错。
如何搞定这个问题?有两种方法可以解决这个问题。一个是优化查询,但在本文不讨论这个;另一个最常用的就是使用缓存。
[更多...]
by 清泉
17. 十二月 2009 11:01
/**************************************************************************/
// 函数名: writefile
// 功能: 创建新文件,并写入内容,如果指定文件名已存在,那将直接覆盖
// 参数: $file -- 新文件名
// $source 文件内容
/**************************************************************************/
function writefile($file,$source){
if($fp=fopen($file,'w')){
$filesource=fwrite($fp,$source);
fclose($fp);
return $filesource;
}
else
return false;
}
[更多...]
by 清泉
16. 十二月 2009 21:48
windows下用到iconv函数把抓取来过的utf-8编码的页面转成gb2312, 发现只有用iconv函数把抓取过来的数据一转码数据就会无缘无故的少一些。 让我郁闷了好一会儿,去网上一查资料才知道这是iconv函数的一个bug。iconv在转换字符"—"到gb2312时会出错
解决方法很简单,就是在需要转成的编码后加 "//IGNORE" 也就是iconv函数第二个参数后.如下:
以下为引用的内容:
iconv("UTF-8","GB2312//IGNORE",$data)
ignore的意思是忽略转换时的错误,如果没有ignore参数,所有该字符后面的字符串都无法被保存。
[更多...]
by 清泉
14. 十二月 2009 20:21
MS对PHP的支持不是太友好,使用微软官方提供的SQLServerDriverForPHP资源包,可以解决PHP读取MSSQL2005过程中遇到的一些问题,(有关,SQLServerDriverForPHP资源的下载,及PHP读取SQL2005数据库的使用方法,可以点击查看相关文章。如:
PHP连接SQL Server 2005,
php sqlserver2005编程,
php sqlserver2005应用编程)但可能因PHP是外家竞争对手,对其的支持也很是有限,在查询数据的时候可能会遇到一些莫名的问题。
如果
www.supidea.com这个表中的myContent字段类型为ntext,直接使用上面的语句,输出的myContent值将为空,这需要对查询语句进行修改,改为“SELECT id,myName,convert(text,myContent) Comments FROM
www.supidea.com”,将其转换成text输出,同时sqlsrv_get_field($supidea,2)需要在sqlsrv_get_field函数调用最后面加入一个参数SQLSRV_PHPTYPE_STREAM(SQLSRV_ENC_CHAR),标明是SQL2005L转换的字符,也就是变为sqlsrv_get_field($supidea,2,SQLSRV_PHPTYPE_STREAM(SQLSRV_ENC_CHAR))。
[更多...]
by 清泉
10. 十二月 2009 08:37
看标题有点迷惑吧.我来解释一下,有人可能有这样的需求,
PHPCMS中一般需要显示某个栏目下有多少文章,这时候只要在栏目标签里加一个变量 {$items} 就可以了.但是,如果有父栏目的话,就不行了.子栏目是可以正常显示的.为什么呢?
原来, {$items} 是保存到 $CATEGORY 二维数组的,因为父栏目不保存文章,而是子栏目保存文章,所以,父栏目的 $CATEGORY数组里的 {$items} 是空的.调用不出来.而子栏目保存文章了,所以他的 {$items} 是有值的.可以取到.
粗体是父栏目,下面的是其子栏目.括号中的是栏目下的文章数目.
那么本贴就是解决父栏目文章问题的.
思路是:先把父栏目的所有子栏目循环出来,然后把他们的items加起来.
[更多...]
by 清泉
9. 十二月 2009 00:52
header()函数的作用是:发送一个原始 HTTP 标头[Http Header]到客户端。
标头 (header) 是服务器以 HTTP 协义传 HTML 资料到浏览器前所送出的字串,在标头
与 HTML 文件之间尚需空一行分隔。有关 HTTP 的详细说明,可以参 RFC 2068 官方文件
(
http://www.w3.org/Protocols/rfc2068/rfc2068)。
在 PHP 中送回 HTML 资料前,需先 传完所有的标头。
[更多...]
by 清泉
8. 十二月 2009 22:16
使用函式 date() 实现
<?php echo $showtime=date("Y-m-d H:i:s");?>
如果是PHP连接MS SQL SERVER,直接输出从MSSQL中读取的时间有可能报Object of class DateTime could not be converted to string in的错误,遇到这么问题,解决办法就是加入SQLSRV_PHPTYPE_STRING( SQLSRV_ENC_CHAR)进行格式化。
如
while ( $row = sqlsrv_fetch( $stmt))
{
echo "Date: ".sqlsrv_get_field( $stmt, 0, SQLSRV_PHPTYPE_STRING( SQLSRV_ENC_CHAR))."\n";
}
[更多...]
by 清泉
8. 十二月 2009 19:36
mssql_affected_rows: 取得最后 query 影响的列数。
mssql_close: 关闭与数据库的连接。
mssql_connect: 连上数据库。
mssql_data_seek: 移动列指针。
mssql_fetch_array: 返回数组资料。
mssql_fetch_field: 取得字段信息。
mssql_fetch_object: 返回类资料。
mssql_fetch_row: 返回单列的各字段。
mssql_field_seek: 配置指针到返回值的某字段。
mssql_free_result: 释放返回占用内存。
mssql_num_fields: 取得返回字段的数目。
mssql_num_rows: 取得返回列的数目。
[更多...]
by 清泉
7. 十二月 2009 13:01
这方面的资料在网络上不太好找,按照上一篇的内容,整理了一下,做了一个可以运行的php + sql server实例好让大家方便
// 以sqlsrv_next_result 函式將批次查詢的結果移往下一筆
sqlsrv_next_result($stmt);
// 取得並顯示第 2 次查詢的結果
echo "查詢 2 的結果:<\br>";
echo "資料已更新:".sqlsrv_rows_affected($stmt)."</br>";
// 以 sqlsrv_next_result 函式將批次查詢的結果移往下一筆
sqlsrv_next_result($stmt);
// 取得並顯示第 3 次查詢的結果
echo "查詢 3 的結果:<\br>";
[更多...]
by 清泉
7. 十二月 2009 12:56
SQL Server 2005 Driver for PHP 提供了 24 個可以用在 PHP 程式的函式,這些函式名稱都是 sqlsrv_ 開頭。而本文即將說明這些函式如何協助 PHP 程式存取 Microsoft SQL Server 資料庫。此外,本文附上一段5分鐘的影片,說明以 SQL Server 2005 Driver for PHP 的函式所編寫的 AdventureWorks Product Reviews 應用範例。
SQL Server 2005 Driver for PHP 提高了 PHP 程式存取 Microsoft SQL Server 的透通性,尤其是較新的 SQL Server 2005、或最新的 SQL Server 2008。目前的 SQL Server 2005 Driver for PHP 1.0 提供了 24 個函式,供作 PHP 程式存取 SQL Server 之用。雖然本文花了相當的篇幅及例子在說明這些函式,但依然無法盡數說完所有的函式;就算已說明的函式,也無法完全解說所有細節。
因此完整的說明,需請您參閱微軟提供的文件(SQL Server Driver for PHP Documentation);除了可於微軟網站查閱,下載回來的 SQL Server 2005 Driver for PHP 檔案(SQLServerDriverForPHP.EXE),也包含內容相同的線上說明檔(SQLServerDriverForPHP_1.0.8204.chm)。
[更多...]