Friday,July-30th
 

查找服务器里PHP木马

 find / -name "*.php" -type f -print0 | xargs -0 egrep "(phpspy|c99sh|milw0rm|eval\(base64_decode|spider_bc)" | awk -F: '{print $1}' | sort | uniq

 

PHP 获取文件扩展名 pathinfo

echo pathinfo('/www/htdocs/your_image.jpg', PATHINFO_EXTENSION);

 

 

<?php
$file_path = pathinfo('/www/htdocs/your_image.jpg');
 
echo "$file_path ['dirname']\n";
echo "$file_path ['basename']\n";
echo "$file_path ['extension']\n";
echo "$file_path ['filename']\n"; // only in PHP 5.2+
?>

以上将输出

/www/htdocs
your_image.jpg
jpg
your_image

注意: pathinfo 支持第3个参数
* PATHINFO_DIRNAME - 目录
* PATHINFO_BASENAME - 文件名(含扩展名)
* PATHINFO_EXTENSION - 扩展名
* PATHINFO_FILENAME - 文件名(不含扩展名)

 

php获取上一个月

$tomorrow  mktime(000date("m")  , date("d")+1date("Y"));
$lastmonth mktime(000date("m")-1date("d"),   date("Y"));
$nextyear  mktime(000date("m"),   date("d"),   date("Y")+1);

php获取上一个月的天数

$count_lastmonth = date('t', $lastmonth);

 
php 获取昨天的日期
 

1. date('Y-m-d', strtotime('-1 day'));

2. date('Y-m-d',time()-86400);

 

 

 

php 判断日期是否合法

checkdate

(PHP 4, PHP 5)

checkdate — 验证一个格里高里日期

说明

bool checkdate ( int $month , int $day , int $year )

如果给出的日期有效则返回 TRUE,否则返回 FALSE。检查由参数构成的日期的合法性。日期在以下情况下被认为有效:

  • year 的值是从 1 到 32767
  • month 的值是从 1 到 12
  • Day 的值在给定的 month 所应该具有的天数范围之内,闰年已经考虑进去了。

 

<?php
       /*
        * 方法    isDate
        * 功能    判断日期格式是否正确
        * 参数    $str        日期字符串
                    $format        日期格式
        * 返回    无
        */
    
function isDate($str,$format="Y-m-d"){
        
$unixTime=strtotime($str);
        
$checkDatedate($format,$unixTime);
        if(
$checkDate==$str)
            return 
1;
        else
            return 
0;
    }
//end function isDate

 

 

CU上看到的,转过来

 
腾讯不是在招人吗?我来发一份他们的面试题,网上搜的!——帖子的标题
 
1.        请对POSIX风格和兼容Perl风格两种正则表达式的主要函数进行类比说明
ereg        preg_match
ereg_replace        preg_replace


2.请说明在php.ini中safe_mode开启之后对于PHP系统函数的影响

3.PHP5中魔术方法函数有哪几个,请举例说明各自的用法

__sleep
__wakeup
__toString
__set_state
__construct,
__destruct
__call,
__get,
__set,
__isset,
__unset
__sleep,
__wakeup,
__toString,
__set_state,
__clone
__autoload


4.请写出让,并说明如何在命令行下运行PHP脚本(写出两种方式)同时向PHP脚本传递参数?


5.PHP的垃圾收集机制是怎样的


6.使对象可以像数组一样进行foreach循环,要求属性必须是私有。
(Iterator模式的PHP5实现,写一类实现Iterator接口)


7.请写一段PHP代码,确保多个进程同时写入同一个文件成功


8.用PHP实现一个双向队列

9.使用正则表达式提取一段标识语言(html或xml)代码段中指定标签的指定属性值(需考虑属性值对不规则的情况,如大小写不敏感,属性名值与等号间有空格等)。此处假设需提取test标签的attr属性值,请自行构建包含该标签的串

<test attr=”ddd”>

<test attr\s*=\s*[“|’](.*?)[”|’].*?>


10.请使用socket相关函数(非curl)实现如下功能:构造一个post请求,发送到指定http server的指定端口的指定请求路径(如http://www.example.com:8080/test)。请求中包含以下变量:

用户名(username):温柔一刀
密码(pwd):&123=321&321=123&
个人简介(intro):Hello world!

且该http server需要以下cookie来进行简单的用户动作跟踪:

cur_query:you&me
last_tm:...(上次请求的unix时间戳,定为当前请求时间前10分钟)
cur_tm:...(当前请求的unix时间戳)

设置超时为10秒,发出请求后,将http server的响应内容输出。



11.你用什么方法检查PHP脚本的执行效率(通常是脚本执行时间)和数据库SQL的效率(通常是数据库Query时间),并定位和分析脚本执行和数据库查询的瓶颈所在?


摘个回帖:

(正则+socket+命令行+多进程)
这是一个网络蜘蛛的特征

(垃圾收集机制)
表示是长时间运行的程序

(魔术方法函数+Iterator)
表明多人开发,此项目不小

腾迅想要做搜索了,选择php,表明他们不是很看好这个项目,只想看市场反应
市场好,则鸟枪换炮,会用C重写,市场不好,则项目撤消。
所以,phper加入这个项目没有一点前途

 

将一个数组的所有key-value都转为大写(小写)

<?php
 $q6 = array("A"=>"Acer",
               "B"=>"Asus",
               "C"=>"BenQ",
               "D"=>"Compower",
               "E"=>"Dell",
               "F"=>"Fujitsu",
               "G"=>"HP",
               "H"=>"IBM",
               "I"=>"Lenovo",
               "J"=>"LG",
               "K"=>"NEC",
               "L"=>"Samsung",
               "M"=>"SONY",
               "N"=>"Toshiba"); 
var_dump( unserialize(strtolower(serialize($q6))));