当前位置:  编程技术>php
本页文章导读:
    ▪php读取大文件最后几行数据的实现代码      本节内容: php读取大文件内容 例子:   代码示例: <?php /* * 读取大文件最后几行数据 * by www. */ $file = $handledir.'/venocap.1';      $fp = fopen($file, "r");       $line = 100;      $pos = -2.........
    ▪php远程copy与执行命令的实例分享      本节内容: 远程copy与执行命令 本节分享的例子,实现思想如下: 远程copy文件以及在远程服务器中执行命令时,使用ssh2模块,所有的操作依据ssh2连接句柄完成。 1. SSH2模块的安装 1.1 安装.........
    ▪php读取配置文件的代码一例      本节内容: php读取配置文件 1,配置文件格式:   #  # Main Configuration File  #  # it can be default or whatever language. Only greek are supported  # from non latin alphabet languages  # These attribute only apply f.........

[1]php读取大文件最后几行数据的实现代码
    来源: 互联网  发布时间: 2013-12-24

本节内容:
php读取大文件内容

例子:
 

代码示例:

<?php
/*
* 读取大文件最后几行数据
* by www.
*/

$file = $handledir.'/venocap.1'; 
    $fp = fopen($file, "r");  
    $line = 100; 
    $pos = -2; 
    $t = " "; 
    $data = ""; 
    while ($line > 0) { 
        while ($t != "\n") { 
            $flag=fseek($fp, $pos, SEEK_END); 
            if (fseek($fp, $pos, SEEK_END)==-1){ 
                //fseek($fp, 0); 
                rewind($fp); 
                $t="\n"; 
                $line=0; 
            }else{ 
                $t = fgetc($fp); 
                $pos --; 
            } 
        } 
        $t = " "; 
        $line --; 
    } 
    while (!feof($fp)) { 
        $data .= fgets($fp); 
        $data.='<br/>'; 
    } 
    fclose ($fp); 
    echo $data 


    
[2]php远程copy与执行命令的实例分享
    来源: 互联网  发布时间: 2013-12-24

本节内容:
远程copy与执行命令

本节分享的例子,实现思想如下:
远程copy文件以及在远程服务器中执行命令时,使用ssh2模块,所有的操作依据ssh2连接句柄完成。

1. SSH2模块的安装
1.1 安装需要的扩展包
 

代码示例:

wget  http://www.libssh2.org/download/libssh2-1.4.2.tar.gz 
tar zxf libssh2-1.4.2.tar.gz 
cd libssh2-1.4.2 
./configure && make && make install 

wget  http://pecl.php.net/get/ssh2-0.11.3.tgz 
cd ssh2-0.11.3 
phpize   (如果报错命令没有找到,apt-get install php5-dev) 
./configure —with-ssh2 && make && make install 

1.2 修改php配置信息
cd  /etc/php5/cgi 
vim  php.ini 
添加项:

extension=/usr/lib/php5/20090626/ssh2.so 

     ssh2.so是编译ssh2时得到的模块,上面是模块的位置。 
cd  /etc/php5/cli 

vim  php.ini 
添加项:

extension=/usr/lib/php5/20090626/ssh2.so 
 

     ssh2.so是编译ssh2时得到的模块,上面是模块的位置。 

1.3 重启web服务器
 

代码示例:
/etc/init.d/lighttpd restart 

1.4 查看是否加载了ssh2
 

代码示例:
[root@localhost ~]php -m | grep ssh2 
ssh2 

2. SSH2模块的连接应用
SSH2连接有两种方式,分别是用户名密码,ssh密钥形式。

2.1 用户名与密码
 

代码示例:
$connection = ssh2_connect("192.168.6.222",22); 
if (ssh2_auth_password($connection,"veno","ubuntu")) 

         echo "Authentication Successful! "; 
}else{ 
         die("Authentication Failed..."); 

 

2.2 ssh密钥
 

代码示例:
$connection = ssh2_connect('192.168.6.222', 22, array('hostkey'=>'ssh-rsa')); 
if (ssh2_auth_pubkey_file($connection, 'root', 
                          '/root/.ssh/id_rsa.pub', 
                          '/root/.ssh/id_rsa')) 

   echo "Public Key Authentication Successful\n"; 
} else { 
     echo ('Public Key Authentication Failed'); 
}
 

密钥生成:
在服务器192.168.6.229上面以root登录
#ssh-keygen 
有什么提问基本上回车即可
后成的公钥在~/.ssh/id_rsa.pub
如果想在229通过密钥验证登录到222上面,则把229的公钥id_rsa.pub cp到222上面,先手动登录root,然后运行:
cat id_rsa.pub >> ~/.ssh/authorized_keys 
这样就可以在229上面ssh 192.168.6.229不需要输入密码即可登录到222。上面php代码在229上面也可以通过验证。

3. SSH2模块的具体应用
通过SSH2验证通过后,得到的连接符为$connection

3.1 实现远程copy文件
远程服务器文件copy到本地:
 

代码示例:
bool ssh2_scp_recv ( resource $session, string $remote_file, string $local_file )
 

Ps: 接收文件时,后面文件名可以为空,如:
 

代码示例:
ssh2_scp_recv($connection, '/home/xiaozl/veno1.exe', '/home/xiaozl/') 

本地文件copy到远程服务器
 

bool ssh2_scp_send ( resource $session, string $local_file, string $remote_file [, int $create_mode] )

Ps:发送文件时,后面的文件名不能为空,如:
 

ssh2_scp_send($connection, '/home/xiaozl/package.xml', '/home/xiaozl/package.xml'); 
 

 
3.2 执行远程服务器上的命令并取返回值
 

resource ssh2_exec( resource $session, string $command [, string $pty [, array $env [, int $width [, int $height [, int $width_height_type]]]]] )

在229上面执行222上的命令具体实例:
 

代码示例:
$tcmd="cd /home/veno/gateway/radiusclient;"; 
$tcmd.="./nastool.sh get-status app=2b1c5364-db39-c76d-842c-11d4a81d555d"; 
$stream = ssh2_exec($connection, $tcmd); 
stream_set_blocking($stream,true); 
echo stream_get_contents($stream);  

测试用例:
 

代码示例:
<?php 
echo "是访问到这里来了"; 
$connection = ssh2_connect('192.168.6.222', 22, array('hostkey'=>'ssh-rsa')); 
if (ssh2_auth_pubkey_file($connection, 'root', 
                          '/root/.ssh/id_rsa.pub', 
                          '/root/.ssh/id_rsa')) 

  echo "Public Key Authentication Successful\n"; 
  //$flag=ssh2_scp_recv($connection, '/home/xiaozl/veno1.exe', '/home/xiaozl/'); 
  //接收时,后面文件名可以为空 
  //$flag=ssh2_scp_send($connection, '/home/xiaozl/package.xml', '/home/xiaozl/package.xml'); 
  //发送时,后面的文件名不能为空 
  //echo $flag; 
  $tcmd="cd /home/veno/gateway/radiusclient;"; 
  $tcmd.="./nastool.sh get-status app=2b1c5364-db39-c76d-842c-11d4a81d555d"; 
  $stream = ssh2_exec($connection, $tcmd); 
  stream_set_blocking($stream,true); 
  echo stream_get_contents($stream);  
} else {  // www.
  echo ('Public Key Authentication Failed'); 

echo "<br/>"; 
$connection = ssh2_connect('192.168.6.222', 22); 
ssh2_auth_password($connection, 'veno', '*******'); 
$tcmd="cd /home/veno/gateway/radiusclient;"; 
  $tcmd.="./nastool.sh get-status app=2b1c5364-db39-c76d-842c-11d4a81d555d"; 
  $stream = ssh2_exec($connection, $tcmd); 
  echo "<br/>"; 
  echo "-----------------------------------------------"; 
  stream_set_blocking($stream,true); 
  echo stream_get_contents($stream);  
  echo "-----------------------------------------------"; 
echo "<br/>"; 

    
[3]php读取配置文件的代码一例
    来源: 互联网  发布时间: 2013-12-24

本节内容:
php读取配置文件

1,配置文件格式:
 


# Main Configuration File 

# it can be default or whatever language. Only greek are supported 
# from non latin alphabet languages 
# These attribute only apply for ldap not for sql 

general_prefered_lang: el 
general_prefered_lang_name: Greek 

# Uncomment this if normal attributes (not the ;lang-xx ones) in ldap 
# are utf8 encoded. 

#general_decode_normal_attributes: yes 

general_base_dir: /usr/local/dialup_admin 
general_radiusd_base_dir: /usr/local/ 
general_domain: my.domain 

2,读取配置文件的php代码,如下:
 

代码示例:
<?php
/**
* 读取配置文件
* by www.
*/
if (!isset()($config)){ 
    $ARR=file("admin.conf"); 
    foreach($ARR as $val) { 
        $val=chop($val); 
        if (ereg('^[[:space:]]*#',$val) || ereg('^[[:space:]]*$',$val)) 
            continue; 
        list($key,$v)=split(":[[:space:]]*",$val,2); 
        if (preg_match("/%\{(.+)\}/",$v,$matches)){ 
            $val=$config[$matches[1]]; 
            $v=preg_replace("/%\{$matches[1]\}/",$val,$v); 
        } 
        $config["$key"]="$v"; 
    } 
    echo "<pre>"; 
    var_dump($config); 

    
最新技术文章:
▪PHP函数microtime()时间戳的定义与用法
▪PHP单一入口之apache配置内容
▪PHP数组排序方法总结(收藏)
▪php数组排序方法大全(脚本学堂整理奉献)
▪php数组排序的几个函数(附实例)
▪php二维数组排序(实例)
▪php根据键值对二维数组排序的小例子
▪php验证码(附截图)
▪php数组长度的获取方法(三个实例)
▪php获取数组长度的方法举例
▪判断php数组维度(php数组长度)的方法
▪php获取图片的exif信息的示例代码
▪PHP 数组key长度对性能的影响实例分析
▪php函数指定默认值的方法示例
▪php提交表单到当前页面、提交表单后页面重定...
▪php四舍五入的三种实现方法
▪php获得数组长度(元素个数)的方法
▪php日期函数的简单示例代码
▪php数学函数的简单示例代码
▪php字符串函数的简单示例代码
▪php文件下载代码(多浏览器兼容、支持中文文...
▪php实现文件下载、支持中文文件名的示例代码...
▪php文件下载(防止中文文件名乱码)的示例代码
▪解决PHP文件下载时中文文件名乱码的问题
▪php数组去重(一维、二维数组去重)的简单示例
▪php小数点后取两位的三种实现方法
▪php Redis 队列服务的简单示例
▪PHP导出excel时数字变为科学计数的解决方法
▪PHP数组根据值获取Key的简单示例
▪php数组去重的函数代码示例
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3