🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
[Xunsearch PHP-SDK](http://www.xunsearch.com) v1.4.8 API 参考文档 # XSUtil [All Packages](#)| [方法(函数)](#) | 包 | [XS.util](#) | |-----|-----| | 继承关系 | class XSUtil | | 版本 | 1.0.0 | | 源代码 | [sdk/php/util/XSUtil.class.php](https://github.com/hightman/xunsearch/blob/master/sdk/php/util/XSUtil.class.php) | XSUtil 工具程序通用代码 ### Public 方法 [隐去继承来的方法](#) | 名称 | 描述 | 定义于 | |-----|-----|-----| | [convertIn()](#) | 把用户输入的字符串转换为 UTF-8 编码 | XSUtil | | [convertOut()](#) | 把 UTF-8 字符串转换为用户编码 | XSUtil | | [copyDir()](#) | 拷贝一个目录及其子目录文件 | XSUtil | | [fixWidth()](#) | 修正字符串至固定宽度 | XSUtil | | [flush()](#) | 刷新标准输出缓冲区 | XSUtil | | [getOpt()](#) | 取得命令行参数 | XSUtil | | [parseOpt()](#) | 解析命令行参数 | XSUtil | | [setCharset()](#) | 设置输出、输入编码 | XSUtil | ### 方法明细 convertIn()方法 <table class="summaryTable"><tr><td colspan="3"><div class="signature2">public static string <b>convertIn</b>(string $buf)</div></td></tr><tr><td class="paramNameCol">$buf</td> <td class="paramTypeCol">string</td> <td class="paramDescCol">要转换字符串</td></tr><tr><td class="paramNameCol">{return}</td> <td class="paramTypeCol">string</td> <td class="paramDescCol">转换后的字符串</td></tr></table> **源码:**[sdk/php/util/XSUtil.class.php#L77](https://github.com/hightman/xunsearch/blob/master/sdk/php/util/XSUtil.class.php#L77) (**[显示](#)**) `public static function convertIn($buf) {     if (self::$charset !== null) {         return XS::convert($buf, 'UTF-8', self::$charset);     }     return $buf; }` 把用户输入的字符串转换为 UTF-8 编码 convertOut()方法 <table class="summaryTable"><tr><td colspan="3"><div class="signature2">public static string <b>convertOut</b>(string $buf)</div></td></tr><tr><td class="paramNameCol">$buf</td> <td class="paramTypeCol">string</td> <td class="paramDescCol">要转换字符串</td></tr><tr><td class="paramNameCol">{return}</td> <td class="paramTypeCol">string</td> <td class="paramDescCol">转换后的字符串</td></tr></table> **源码:**[sdk/php/util/XSUtil.class.php#L64](https://github.com/hightman/xunsearch/blob/master/sdk/php/util/XSUtil.class.php#L64) (**[显示](#)**) `public static function convertOut($buf) {     if (self::$charset !== null) {         return XS::convert($buf, self::$charset, 'UTF-8');     }     return $buf; }` 把 UTF-8 字符串转换为用户编码 copyDir()方法 <table class="summaryTable"><tr><td colspan="3"><div class="signature2">public static void <b>copyDir</b>($src, $dst)</div></td></tr><tr><td class="paramNameCol">$src</td> <td class="paramTypeCol"></td> <td class="paramDescCol"></td></tr><tr><td class="paramNameCol">$dst</td> <td class="paramTypeCol"></td> <td class="paramDescCol"></td></tr></table> **源码:**[sdk/php/util/XSUtil.class.php#L176](https://github.com/hightman/xunsearch/blob/master/sdk/php/util/XSUtil.class.php#L176) (**[显示](#)**) `public static function copyDir($src, $dst) {     if (!($dir = @dir($src)) || (!is_dir($dst) && !@mkdir($dst, 0755, true))) {         return false;     }     while (($entry = $dir->read()) !== false) {         if ($entry === '.' || $entry === '..') {             continue;         }         $psrc = $src . DIRECTORY_SEPARATOR . $entry;         $pdst = $dst . DIRECTORY_SEPARATOR . $entry;         if (is_dir($pdst)) {             self::copyDir($psrc, $pdst);         } else {             @copy($psrc, $pdst);         }     }     $dir->close();     return true; }` 拷贝一个目录及其子目录文件 fixWidth()方法 <table class="summaryTable"><tr><td colspan="3"><div class="signature2">public static type <b>fixWidth</b>(string $text, int $size, string $pad=' ')</div></td></tr><tr><td class="paramNameCol">$text</td> <td class="paramTypeCol">string</td> <td class="paramDescCol">要修正的字符串</td></tr><tr><td class="paramNameCol">$size</td> <td class="paramTypeCol">int</td> <td class="paramDescCol">修正的目标宽度</td></tr><tr><td class="paramNameCol">$pad</td> <td class="paramTypeCol">string</td> <td class="paramDescCol">用于填充补足的字符</td></tr><tr><td class="paramNameCol">{return}</td> <td class="paramTypeCol">type</td> <td class="paramDescCol"></td></tr></table> **源码:**[sdk/php/util/XSUtil.class.php#L32](https://github.com/hightman/xunsearch/blob/master/sdk/php/util/XSUtil.class.php#L32) (**[显示](#)**) `public static function fixWidth($text, $size, $pad = ' ') {     for ($i = $j = 0; $i < strlen($text) && $j < $size; $i++, $j++) {         if ((ord($text[$i]) & 0xe0) === 0xe0) {             if (($size - $j) == 1) {                 break;             }             $j++;             $i += 2;         }     }     return substr($text, 0, $i) . str_repeat($pad, $size - $j); }` 修正字符串至固定宽度其中一个全角符号、汉字的宽度为半角字符的 2 倍。 flush()方法 <table class="summaryTable"><tr><td colspan="3"><div class="signature2">public static void <b>flush</b>()</div></td></tr></table> **源码:**[sdk/php/util/XSUtil.class.php#L165](https://github.com/hightman/xunsearch/blob/master/sdk/php/util/XSUtil.class.php#L165) (**[显示](#)**) `public static function flush() {     flush();     if (ob_get_level() > 0) {         ob_flush();     } }` 刷新标准输出缓冲区 getOpt()方法 <table class="summaryTable"><tr><td colspan="3"><div class="signature2">public static string <b>getOpt</b>(string $short, string $long=NULL, bool $extra=false)</div></td></tr><tr><td class="paramNameCol">$short</td> <td class="paramTypeCol">string</td> <td class="paramDescCol">短参数名</td></tr><tr><td class="paramNameCol">$long</td> <td class="paramTypeCol">string</td> <td class="paramDescCol">长参数名</td></tr><tr><td class="paramNameCol">$extra</td> <td class="paramTypeCol">bool</td> <td class="paramDescCol">是否补用默认顺序的参数</td></tr><tr><td class="paramNameCol">{return}</td> <td class="paramTypeCol">string</td> <td class="paramDescCol">返回可用的参数值,若不存在则返回 null</td></tr></table> **源码:**[sdk/php/util/XSUtil.class.php#L143](https://github.com/hightman/xunsearch/blob/master/sdk/php/util/XSUtil.class.php#L143) (**[显示](#)**) `public static function getOpt($short, $long = null, $extra = false) {     if (self::$options === null) {         self::parseOpt();     }     $value = null;     $options = self::$options;     if ($long !== null && isset($options[$long])) {         $value = $options[$long];     } elseif ($short !== null && isset($options[$short])) {         $value = $options[$short];     } elseif ($extra === true && isset($options['-'][self::$optind])) {         $value = $options['-'][self::$optind];         self::$optind++;     }     return $value; }` 取得命令行参数要求事先调用 parseOpt, 否则会自动以默认参数调用它。 #### 参见 - [parseOpt](#) parseOpt()方法 <table class="summaryTable"><tr><td colspan="3"><div class="signature2">public static array <b>parseOpt</b>(array $valued=array ())</div></td></tr><tr><td class="paramNameCol">$valued</td> <td class="paramTypeCol">array</td> <td class="paramDescCol">需要附加值的参数列表</td></tr><tr><td class="paramNameCol">{return}</td> <td class="paramTypeCol">array</td> <td class="paramDescCol">解析完的参数数组,未指定 - 开头的选项统一放入 '-' 的子数组</td></tr></table> **源码:**[sdk/php/util/XSUtil.class.php#L90](https://github.com/hightman/xunsearch/blob/master/sdk/php/util/XSUtil.class.php#L90) (**[显示](#)**) `public static function parseOpt($valued = array()) {     $result = array('-' => array());     $params = isset($_SERVER['argv']) ? $_SERVER['argv'] : array();     for ($i = 0; $i < count($params); $i++) {         if ($params[$i] === '--') {             for ($i = $i + 1; $i < count($params); $i++) {                 $result['-'][] = $params[$i];             }             break;         } elseif ($params[$i][0] === '-') {             $value = true;             $pname = substr($params[$i], 1);             if ($pname[0] === '-') {                 $pname = substr($pname, 1);                 if (($pos = strpos($pname, '=')) !== false) {                     $value = substr($pname, $pos + 1);                     $pname = substr($pname, 0, $pos);                 }             } elseif (strlen($pname) > 1) {                 for ($j = 1; $j < strlen($params[$i]); $j++) {                     $pname = substr($params[$i], $j, 1);                     if (in_array($pname, $valued)) {                         $value = substr($params[$i], $j + 1);                         break;                     } elseif (($j + 1) != strlen($params[$i])) {                         $result[$pname] = true;                     }                 }             }             if ($value === true && in_array($pname, $valued) && isset($params[$i + 1])) {                 $value = $params[$i + 1];                 $i++;             }             $result[$pname] = $value;         } else {             $result['-'][] = $params[$i];         }     }     self::$options = $result;     self::$optind = 1;     return $result; }` 解析命令行参数 setCharset()方法 <table class="summaryTable"><tr><td colspan="3"><div class="signature2">public static void <b>setCharset</b>(string $charset)</div></td></tr><tr><td class="paramNameCol">$charset</td> <td class="paramTypeCol">string</td> <td class="paramDescCol">期望得到的字符集</td></tr></table> **源码:**[sdk/php/util/XSUtil.class.php#L51](https://github.com/hightman/xunsearch/blob/master/sdk/php/util/XSUtil.class.php#L51) (**[显示](#)**) `public static function setCharset($charset) {     if ($charset !== null && strcasecmp($charset, 'utf8') && strcasecmp($charset, 'utf-8')) {         self::$charset = $charset;         ob_start(array(__CLASS__, 'convertOut'));     } }` 设置输出、输入编码默认输出的中文编码均为 UTF-8 Copyright © 2008-2011 by [杭州云圣网络科技有限公司](http://www.xunsearch.com) All Rights Reserved.