良玉的博客 点点滴滴,积水成河_良玉的博客_页游、手游linux运维工程师之路

php来实现telnet的连接、传递命令、获取返回值等功能

<?php
error_reporting(-1);
class Telnet {
var $sock = NULL;
 
function telnet($host,$port) {
 $this->sock = fsockopen($host,$port);
 socket_set_timeout($this->sock,1,0);
}
function close() {
 if ($this->sock)  fclose($this->sock);
 $this->sock = NULL;
}
 
function write($buffer) {
 $buffer = str_replace(chr(255),chr(255).chr(255),$buffer);
 fwrite($this->sock,$buffer);
}
function getc() {
 return fgetc($this->sock);
}
function read_till($what) {
 $buf = '';
 while (1) {
  $IAC = chr(255);
   
  $DONT = chr(254);
  $DO = chr(253);
   
  $WONT = chr(252);
  $WILL = chr(251);
   
  $theNULL = chr(0);
 
  $c = $this->getc();
   
  if ($c === false) return $buf;
  if ($c == $theNULL) {
   continue;
  }
 
  if ($c == "1") {
   continue;
  }
  if ($c != $IAC) {
   $buf .= $c;
  
   if ($what == (substr($buf,strlen($buf)-strlen($what)))) {
    return $buf;
   }
   else {
    continue;
   }
  }
  $c = $this->getc();
   
  if ($c == $IAC) {
   $buf .= $c;
  }
  else if (($c == $DO) || ($c == $DONT)) {
   $opt = $this->getc();
    //echo "we wont ".ord($opt)."\n";
   fwrite($this->sock,$IAC.$WONT.$opt);
  }
  elseif (($c == $WILL) || ($c == $WONT)) {
   $opt = $this->getc();
    //echo "we dont ".ord($opt)."\n";
   fwrite($this->sock,$IAC.$DONT.$opt);
  }
  else {
    //echo "where are we? c=".ord($c)."\n";
  }
 }
}
}
$telnet = new telnet("192.168.0.1",'8080');
#echo $telnet->read_till("password: ");
#$telnet->write("KONGXX\r\n");
#echo $telnet->read_till(":> ");
#$telnet->write("ls\r\n");
#echo $telnet->read_till(":> ");
echo $telnet->close();


阅读全文...

php抓取页面的几种方式

下面简单说一下php抓取页面的几种方法及原理:

一、 PHP抓取页面的主要方法:

1. file()函数   

2. file_get_contents()函数 

3.   fopen()->fread()->fclose()模式 

4.curl方式 

5. fsockopen()函数 &n

阅读全文...

php如何开启gd2扩展

extension=php_gd2.dll

找到php的配置文件php.ini,搜索extension=php_gd2.dll,去掉前面的分号即可;
如果没有直接添加这种情况适合于windows系统和编译时支持gd的php,保存后重启apache即可
如果用的是安装版本如

阅读全文...

php使用curl和正则表达式抓取网页数据

php也可以抓取网页数据,虽然性能上,个人感觉太慢还浪费资源,但是看你怎么去使用了。

利用curl和正则表达式做的一个针对磨铁中文网非vip章节的小说抓取器,支持输入小说ID下载小说。
依赖项:curl
可以简单的看下,里面用到了curl ,正则表达式,ajax等技术,适合新手看看。在本地测试,必须保证联网并且确保php开启curl的mode

SpiderTools.class.php 

<a data="7981

阅读全文...

zblog搜索分页

Z-BLOG PHP版本默认搜索是无法分页的,APP中心有一个Search Plus插件,此插件可以优化搜索界面,但是同样不能分页。但是我们可以修改一下这个插件。


直接替换原插件的include.php即可。

<?php
require dirname(__FILE__) . DIRECTORY_SEPARATOR .&

阅读全文...

HTML设为首页和收藏本站,兼容IE,chrome,firefox

相信很多朋友都在寻找“设为首页”与“收藏本站”的代码,现在网上到处都是,不过兼容性不算太好,下面给大家分享这两种兼容性良好的代码,拓源网的某些主题里也应用到,希望能够节省大家的时间,能拿来直接用的干嘛还要手写呢?

阅读全文...

li设置横排,除去li前的圆点

如何用CSS制作横向菜单 让ul li横向排列及圆点处理 
   
我们先建立一个无序列表,来建立菜单的结构。代码是:

<ul>
<li><a href="1">首页</a></li>
<li><a href="2">产品介绍</a></li>
<li><a href="3">服务介绍</a></li>
<li><a href="4">技术支持</a></li>
<li><a href="5">立刻购买</a></li>
<li><a href="6">联系我们</a></li>


阅读全文...

PHP新手上路(十) 简易banner动态更替

建设一个简单交互的网站(六) 9. 简易banner动态更替 不知大家有没有发现各大站点上的标头广告banner,我们每次访问这些站点时,都会看到不同的广告图标,或者如果你每次刷新页面时,这些广告banner就会不断地随机更替变换。要实现这种效果虽然用javascript也

阅读全文...