汉语分词的php代码

输入要进行分词的文本,读取分词结果,进行中文分词的 PHP 类就在下面了,中文分词是整个系统最基础的部分之一,在 PHP 代码里调用 C/C++ 版本的可执行文件,我使用的分词工具是中科院计算所的开源版本的 ICTCLAS,很多webshell里都没有proc,popen、popen这两种方式

进展普通话分词的 PHP 类就在上面了, 用 proc_open() 函数来实行分词程序,
并通过管道和其交互, 输入要拓展分词的文书, 读取分词结果。

<?php教程
class NLP{
    private static $cmd_path;

    // 不以’/’结尾
    static function set_cmd_path($path){
        self::$cmd_path = $path;
    }

    private function cmd($str){
        $descriptorspec = array(
           0 => array(“pipe”, “r”),
           1 => array(“pipe”, “w”),
        );
        $cmd = self::$cmd_path . “/ictclas”;
        $process = proc_open($cmd, $descriptorspec, $pipes);

澳门京葡网站,        if (is_resource($process)) {
            $str =
iconv(‘utf-8’, ‘gbk’, $str);
            fwrite($pipes[0], $str);
            $output = stream_get_contents($pipes[1]);

            fclose($pipes[0]);
            fclose($pipes[1]);

            $return_value = proc_close($process);
        }

        /*
        $cmd = “printf ‘$input’ | ” . self::$cmd_path . “/ictclas”;
        exec($cmd, $output, $ret);
        $output = join(“n”, $output);
        */

        $output = trim($output);
        $output = iconv(‘gbk’, ‘utf-8’, $output);

        return $output;
    }

    /**
     * 进行分词, 再次回到词语列表.
     */
    function tokenize($str){
        $tokens = array();

        $output = self::cmd($input);
        if($output){
            $ps教程 =
preg_split(‘/s+/’, $output);
            foreach($ps as $p){
                list($seg, $tag) =
explode(‘/’, $p);
                $item = array(
                    ‘seg’ => $seg,
                    ‘tag’ => $tag,
                    );
                $tokens[] = $item;
            }
        }

        return $tokens;
    }
}
NLP::set_cmd_path(dirname(__FILE__));
?>
利用起来非常粗大略(确定保证 ICTCLAS 编写翻译后的可实行文件和词典在当前目录):

<?php
require_once(‘NLP.php’);
var_dump(NLP::tokenize(‘你好啊, 世界!’));
?>

<?php
class NLP{
private static $cmd_path;
// 不以’/’结尾
static function set_cmd_path($path){
self::$cmd_path = $path;
}
private function cmd($str){
$descriptorspec = array(
0 => array(“pipe”, “r”),
1 => array(“pipe”, “w”),
);
$cmd = self::$cmd_path . “/ictclas”;
$process = proc_open($cmd, $descriptorspec, $pipes);
if (is_resource($process)) {
$str = iconv(‘utf-8’, ‘gbk’, $str);
fwrite($pipes[0], $str);
$output = stream_get_contents($pipes[1]);
fclose($pipes[0]);
fclose($pipes[1]);
$return_value = proc_close($process);
}
/*
$cmd = “printf ‘$input’ | ” . self::$cmd_path . “/ictclas”;
exec($cmd, $output, $ret);
$output = join(“\n”, $output);
*/
$output = trim($output);
$output = iconv(‘gbk’, ‘utf-8’, $output);
return $output;
}
/**
* 进行分词, 重返词语列表.
*/
function tokenize($str){
$tokens = array();
$output = self::cmd($input);
if($output){
$ps = preg_split(‘/\s+/’, $output);
foreach($ps as $p){
list($seg, $tag) = explode(‘/’, $p);
$item = array(
‘seg’ => $seg,
‘tag’ => $tag,
);
$tokens[] = $item;
}
}
return $tokens;
}
}
NLP::set_cmd_path(dirname(__FILE__));
?>

    笔者看了眨眼间间常用的php
webshell,对于命令推行、反弹shell都没有完善的措施。非常多webshell里都未曾proc_popen、popen这两种艺术,特别是proc_popen,比如phpspy。

<?php教程
class NLP{
private static $cmd_path;
// 不以’/’结尾
static function set_cmd_path($path){
self::$cmd_path = $path;
}
private function cmd($str){
$descriptorspec = array(
0 => array(“pipe”, “r”),
1 => array(“pipe”, “w”),
);
$cmd = self::$cmd_path . “/ictclas”;
$process = proc_open($cmd, $descriptorspec, $pipes);
if (is_resource($process)) {
$str = iconv(‘utf-8’, ‘gbk’,
$str);
fwrite($pipes[0], $str);
$output = stream_get_contents($pipes[1]);
fclose($pipes[0]);
fclose($pipes[1]);
$return_value = proc_close($process);
}
/*
$cmd = “printf ‘$input’ | ” . self::$cmd_path . “/ictclas”;
exec($cmd, $output, $ret);
$output = join(“n”, $output);
*/
$output = trim($output);
$output = iconv(‘gbk’, ‘utf-8’, $output);
return $output;
}
/**
* 举办分词, 重返词语列表.
*/
function tokenize($str){
$tokens = array();
$output = self::cmd($input);
if($output){
$ps教程 = preg_split(‘/s+/’,
$output);
foreach($ps as $p){
list($seg, $tag) =
explode(‘/’, $p);
$item = array(
‘seg’ => $seg,
‘tag’ => $tag,
);
$tokens[] = $item;
}
}
return $tokens;
}
}
NLP::set_cmd_path(dirname(__FILE__));
?>

用起来很简短(确认保证 ICTCLAS 编写翻译后的可施行文件和词典在当前目录):
复制代码 代码如下:
<?php
require_once(‘NLP.php’);
var_dump(NLP::tokenize(‘Hello, World!’));
?>

中文搜索引擎来讲,
中文分词是整种类统最基础的片段之一,
因为脚下基于单字的汉语寻觅算法并非太好. 当然,
本文不是要对中文搜索引擎做商讨, 而是分享倘诺用 PHP 做一个站内搜索引擎.
本文是其一系统中的一篇

复制代码 代码如下:

   
当系统尚未禁止使用proc_popen的时候,大家是能够依据proc_popen轻易反弹那样的二个shell的。无需其它其余语言的协理,php足矣。

原先有用过dedecms分词功能,经过测验照旧不出彩,后来经过一些管理获得的结果要么能够承受的,明天自己再来看那款分词法,拿出来给大家看看。

举办汉语分词的 PHP 类就在底下了, 用 proc_open() 函数来实践分词程序,
并通过管道和其交互, 输入要举行分词的文件, 读取分词结果.

复制代码 代码如下:

   
在小编采访的反弹shell集合(

 

站长经验,

您或许感兴趣的篇章:

  • php完结的中文分词类完整实例
  • php达成scws普通话分词寻找的秘技
  • PHPAnalysis中文分词类详解
  • 开源php汉语分词系统SCWS安装和接纳实例
  • 应用Discuz关键词服务器完结PHP汉语分词
  • PHP普通话分词
    自动获得首要词介绍
  • 帮忙汉转拼和拼音分词的PHP粤语言文字工作具类ChineseUtil
  • 多讯php中文分词扩充 v0.1
  • HTTPCWS PHP中文分词增加1.0.0

inux下,有时候得到webshell供给提权,提权必须要得到二个交互式的shell。