PHP 获取系统信息,PHP 获取服务器详细信息

作者:寒川 发布于:2011-3-3 22:32 Thursday 分类:网页编程

最近花时间简单的写了个企业级CMS,后台用到获取相关系统参数,贴这儿,没准啥时候还能用。

获取系统类型及版本号:    php_uname()                                   (例:Windows NT COMPUTER 5.1 build 2600)
只获取系统类型:          php_uname('s')                                (或:PHP_OS,例:Windows NT)
只获取系统版本号:        php_uname('r')                                (例:5.1)
获取PHP运行方式:         php_sapi_name()                               (PHP run mode:apache2handler)
获取前进程用户名:        Get_Current_User()
获取PHP版本:             PHP_VERSION
获取Zend版本:            Zend_Version()
获取PHP安装路径:         DEFAULT_INCLUDE_PATH
获取当前文件绝对路径:    __FILE__


获取Http请求中Host值:    $_SERVER["HTTP_HOST"]                         (返回值为域名或IP)
获取服务器IP:            GetHostByName($_SERVER['SERVER_NAME'])
接受请求的服务器IP:      $_SERVER["SERVER_ADDR"]                       (有时候获取不到,推荐用:GetHostByName($_SERVER['SERVER_NAME']))
获取客户端IP:            $_SERVER['REMOTE_ADDR']
获取服务器解译引擎:      $_SERVER['SERVER_SOFTWARE']
获取服务器CPU数量:       $_SERVER['PROCESSOR_IDENTIFIER']
获取服务器系统目录:      $_SERVER['SystemRoot']
获取服务器域名:          $_SERVER['SERVER_NAME']                       (建议使用:$_SERVER["HTTP_HOST"])
获取用户域名:            $_SERVER['USERDOMAIN']
获取服务器语言:          $_SERVER['HTTP_ACCEPT_LANGUAGE']
获取服务器Web端口:       $_SERVER['SERVER_PORT']

标签: php 系统 cms

评论(19) 引用(0) 浏览(2740)

调整PHP和MySQL的时区,实现同步显示中国时间

作者:寒川 发布于:2010-10-27 16:38 Wednesday 分类:网页编程

现在很多朋友购买国外主机,可是国外主机显示的是当地时间,如何设置成国内时间呢?

所谓的时间问题归根结底也就是“时区”问题,我们首先要知道的是:

1、美国时间和中国时间相差应该是8小时。
2、PHP的时间和MySQL的时间不是相同的。

所以,我们所要做的事情就是:

1、把美国时间改成中国时间。
2、并且要把PHP的时间和MySQL的时间统一。


一、修改PHP时间

听上去有点小复杂,其实很简单。首先我们来改PHP的时间,将这句代码插入到PHP程序中,公共调用页的顶部(也就是要include_once,require_once到的脚本里,当然你不用_once我也没有意见),确保需要用到时间的页面都必须调用到:复制内容到剪贴板代码:

date_default_timezone_set('PRC') or die('时区设置失败,请联系管理员!');现在测试下:复制内容到剪贴板代码:

echo date('Y-m-d H:i:s');怎么样?哇哈哈,正确显示中国时间了,当然你要说北京时间我也没意见。至于那个参数PRC是什么意思,我记得是某个神奇的土地之缩写,不用管它,照搬就行了,错不了的。成功了?NO,不要得意得太早,在MySQL里输入语句SELECT NOW();你会惊愕的发现,MySQL的时间还是美国时间。不急,我们继续下一步。



二、修改MySQL时间

如果你在写程序的时候,习惯了用类或者函数,那么恭喜你,这一步你同样只需要一次复制粘贴操作就能将它解决。如果你在写程序的从来不用类或者函数,那么我会祈祷耶稣和释迦牟尼一同保佑你,不会在改程序的时候累得很惨,同时希望你改掉这个不好的编程习惯。那么,就请在PHP程序有数据库连接的下一语句(只有1次,就加1句;若有无数次,就加无数次……这个编程习惯,还是重要啊)加入如下代码:复制内容到剪贴板代码:

mysql_query("SET time_zone = '+8:00'") or die('时区设置失败,请联系管理员!');再去SELECT NOW();下,你会惊喜地发现,MySQL也是中国时间了。为什么是+8:00呢?前面我说过了,中国时间和美国时间差8小时,往那个那个貌似向东还是向西的方向来着?(不好意思我是路盲,我在怪地球是圆的)。OK,现在MySQL的时间也搞定了,我相信现在就会有比较严谨朋友问了:那你如何证明PHP的时间和MySQL的时间是同步呢?啊……这个人与人之间的信任,还是重要的,就像汇款,哈哈,那我们来做个测试吧:复制内容到剪贴板代码:

//这里是页面的开头,用于改PHP时间的代码。
date_default_timezone_set('PRC') or die('时区设置失败,请联系管理员!');

//-------------------------------------------------------------
//
// 这里写数据库连接的代码,别懒,自己写。
//
//-------------------------------------------------------------

//数据库一旦连接,紧跟着就是改MySQL时间的代码。
mysql_query("SET time_zone = '+8:00'") or die('时区设置失败,请联系管理员!');

//显示PHP的时间
echo date('Y-m-d H:i:s');

echo


//显示MySQL的时间
$mysql_time = mysql_query("SELECT NOW()");
$mysql_rows = mysql_fetch_row($mysql_time);

echo $mysql_rows[0];

来自百度

标签: php 脚本 编程 mysql

评论(14) 引用(0) 浏览(2890)

php curl利用嘀咕、搜狐微博API发布微博

作者:寒川 发布于:2010-8-3 8:57 Tuesday 分类:网页编程

嘀咕、搜狐微博API使用昨晚简单地研究了一下,下面是用php curl利用嘀咕、搜狐微博API发布微博,具体如下:

<?php

$username = 'xieyanwei51';
$password = '123456;
$content='别怕,这是PHP利用API发送的微博!';

//以下是SOHU微博API的使用。 
$url = 'http://api.t.sohu.com/statuses/update.xml';
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt($curl, CURLOPT_USERPWD, "$username:$password");
curl_setopt($curl, CURLOPT_POSTFIELDS,'status='.urlencode($content)) ;
curl_setopt($curl, CURLOPT_HEADER, 0);//1显示头,0不显示头。
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);//禁止返回status的状态。
curl_exec($curl);
curl_close($curl);

//以下是嘀咕API的使用。
$url = 'http://api.minicloud.com.cn/statuses/update.format';
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt($curl, CURLOPT_USERPWD, "$username:$password");
curl_setopt($curl, CURLOPT_POSTFIELDS,'content='.urlencode('sorry for emlog')) ;
curl_setopt($curl, CURLOPT_HEADER, 0);//1显示头,0不显示头。
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);//禁止返回status的状态。
curl_exec($curl);
curl_close($curl);

?>

标签: php api 微博 嘀咕API 搜狐微博API

评论(0) 引用(0) 浏览(2158)

php curl写个新浪发sina微博的API接口

作者:寒川 发布于:2010-7-31 22:24 Saturday 分类:网页编程

一直没得到新浪微博API Key,自己用php curl写个新浪发sina微博的API接口,发出来分享,和《封装一个php发QQ微博的类 》是一个原理,几乎一模一样了。废话不多说,直接上菜:
<?php

/*

*How to use?

*publish("username","password","have a test.");

*Copy Right 寒川

*URL:http://huikon.cn

*/

function publish($username, $password, $content=''){//发布
    $referURL = 'http://t.sina.com.cn';
    $url = 'http://t.sina.com.cn/mblog/publish.php';
    $fields = array(
    'content'=>urlencode($content) ,
    );
    $fields_string = '';
    foreach($fields as $key=>$value) { $fields_string .= $key.'='.$value.'&amp;' ; }
    rtrim($fields_string ,'&amp;') ;
    $fields_string = substr($fields_string, 0,-5);
   
    $cookie_jar = login($username, $password);

    $curl = curl_init($url) ;
    curl_setopt($curl, CURLOPT_POST,count($fields)) ;
    curl_setopt($curl, CURLOPT_POSTFIELDS,$fields_string) ;
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($curl, CURLOPT_COOKIEJAR, $cookie_jar);
    curl_setopt($curl, CURLOPT_COOKIEFILE, $cookie_jar);
    curl_setopt($curl, CURLOPT_COOKIEJAR, $cookie_jar);
    curl_setopt($curl, CURLOPT_REFERER, $referURL);
    curl_exec($curl);
    curl_close($curl);
    unlink($cookie_jar);
}

function login($username, $password){//登录
    $loginURL = 'https://login.sina.com.cn/sso/login.php?username='.$username.'&password='.$password.'&returntype=TEXT';
    $curl = curl_init($loginURL);
    $cookie_jar = tempnam('.', 'cookie');
    curl_setopt($curl, CURLOPT_COOKIEJAR, $cookie_jar);
    curl_setopt($curl, CURLOPT_HEADER, 0);
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($curl, CURLOPT_TIMEOUT, 10);
    curl_exec($curl);
    curl_close($curl);
    return $cookie_jar;
}

?>

标签: php api curl 新浪微博 微博API

评论(4) 引用(0) 浏览(4282)

php判断远程文件是否存在

作者:寒川 发布于:2010-7-21 14:29 Wednesday 分类:网页编程

<?php
function check_file($host,$file)
{
$fp = fsockopen($host, 80, $errno, $errstr, 30);
if (!$fp) {
   echo "$errstr ($errno)<br />\n";
} else {
    $out = "HEAD /$file HTTP/1.1\r\n";// or $out = "HEAD /index.xxx HTTP/1.1\r\n";
    $out .= "Host: $host\r\n";
    $out .= "Connection: Close\r\n\r\n";
    fwrite($fp, $out);
        $response = explode(" ",fgets($fp, 128));
    fclose($fp);
      return $response[2];
}
}

echo check_file('huikon.cn','index.php');
?>

本函数用于判断远程文件是否存在。

标签: php 编程

评论(2) 引用(0) 浏览(1387)

dedecms挂马清理记

作者:寒川 发布于:2010-6-19 7:44 Saturday 分类:网页编程

一老同学的网站被挂马了,据说每次登录360都会提示挂马,本人已卸载了360,自然是不知不觉,好在ESET还算尽忠职守,默默地抵御了木马的下载,导致IE浏览器总是无法浏览。换个浏览器k-meleon,网站直接就被打开了,查看了一下源码,js挂马真不少。于是乎登陆ftp修改所有被挂马的模板文件。重新生成html静态页面。没隔几天,又说被挂马了……晕啊!于是乎再次重复上述步骤。难道密码太弱?换了密码,改了后台登陆地址,结果又过了几天,还是被成功挂马了……厉害啊!肯定哪儿存在漏洞。在查看数据库连接配置文件时终于发现了线索,居然在数据库连接配置文件中收集用户名及密码用fputs()函数模拟GET发送到另url中,并且url函数base64_encode()编码了,很迷惑人,细细想来,挂马之人还挺厉害的啊,看来php学的很精通了,这招都能想到,I 服了他。

标签: php 挂马 dedecms 模拟GET

评论(4) 引用(0) 浏览(1420)

php实现多关键词sql数据库查询

作者:寒川 发布于:2010-6-10 11:19 Thursday 分类:网页编程

实现的方法实际上是来自至一个asp的关键词sql数据库查询,将其“翻译”成php,简单地实现多关键词sql数据库查询,废话不多讲,直接上菜:

<?php

$keywords="测试 关键词";//从表单获取的关键词。

$keyword =explode(' ',$keywords);//将关键词以空格分割到数组中。


$temp_sql='';
 for($i=0;$i<count($keyword);$i++)
 {
    if($i==count($keyword)-1)
      {
        $temp_sql=$temp_sql." content LIKE '%".$keyword[0]."%' and ";//根据sql语句后续需要填写“and”
      }
      else
      {
        $temp_sql.=$temp_sql." content LIKE '%".$keyword[0]."%' or ";
      }
 }
$sql="SELECT * FROM  table where ".$temp_sql." order by content";//组合查询语句
echo $sql;//输出SQL语句,用于调试、查询

?>

标签: php 多关键词 sql查询 关键词查询

评论(1) 引用(0) 浏览(1433)

Powered by emlog 沪ICP备09072012号