API介绍
这个API是基于TYPO3,且只能使用在TYPO3-CMS中的功能性辅助函数集合,它将PHP的功能函数做了优化,使得这些函数搭配TYPO3使用更方便,更简单,更准确。可以说是TYPO3开发中的必要工具。该API在TYPO3-CMS中的位置:
(项目根目录)/typo3/sysext/core/Classes/Utility/GeneralUtility.php
。
使用方法
方法1:该API不需要实例化就可以使用。
使用 \TYPO3\CMS\Core\Utility\GeneralUtility::
型的函数名前缀就可以调用成功。
-
eg. :
\TYPO3\CMS\Core\Utility\GeneralUtility::milliseconds(); //获取unix毫秒时间戳。
; -
eg. :
\TYPO3\CMS\Core\Utility\GeneralUtility::_GET(); //获取GET提交数据。
;
方法2:使用 use
导入该API的命名空间后进行使用。
使用 在类(class)的上方,use TYPO3\CMS\Core\Utility\GeneralUtility
就可以在类中直接调用成功了。
-
eg. :
GeneralUtility::milliseconds(); //获取unix毫秒时间戳。
; -
eg. :
GeneralUtility::_GET(); //获取GET提交数据。
;
详细
1、GET/POST 变量
//返回指定变量的 $_GET/$_POST 数据
public static function _GP($var)
//返回指定变量 $_GET和$_POST合并数据集,$_POST优先。
public static function _GPmerged($parameter)
//返回指定变量的 $_GET 数据
public static function _GET($var = null)
//返回指定变量的 $_POST 数据
public static function _POST($var = null)
2、字符串处理
//兼容中文的字符串截断和拼接
public static function fixed_lgd_cs($string, $chars, $appendString = '...')
//验证IP地址是否合法
public static function validIP($ip)
//验证IPv4地址是否合法
public static function validIPv4($ip)
//验证IPv6地址是否合法
public static function validIPv6($ip)
//用通配符字符串匹配列表中完全合格的域名
public static function cmpFQDN($baseHost, $list)
//检查给定的URL是否与当前发起HTTP请求的主机相匹配。
public static function isOnCurrentHost($url)
//检查以逗号分隔的项目列表中存在的项
public static function inList($list, $item)
//删除列表中的一项
public static function rmFromList($element, $list)
//扩大以逗号分隔的与范围的整数列表(例如1,3-5,7变为1,3,4,5,7)。扩大范围最大为间隔的1000倍
public static function expandList($list)
//从输入的md5哈希值的前7个字符中得出一个正整数哈希值
public static function md5int($str)
/返回MD5hash的前$len个字符(默认为10个)
public static function shortMD5($input, $len = 10)
//在给定的输入字符串和TYPO3加密密钥上返回正确的HMAC。
public static function hmac($input, $additionalSecret = '')
//删除使用逗号分隔的列表和数组中的所有重复项
public static function uniqueList($in_list, $secondParameter = null)
//获取文件详情 [path], [file], [filebody], [fileext], [realFileext]
public static function split_fileref($fileNameWithPath)
//返回路径的目录部分,后面不带斜杠
public static function dirname($path)
/如果$str的第一部分与字符串$partStr匹配,则返回TRUE
public static function isFirstPartOfStr($str, $partStr)
//文件大小格式化为人类可读数据
public static function formatSize($sizeInBytes, $labels = '', $base = 0)
//简单的数学运算 /+-*
// string $string 计算公式 eg "123 + 456 / 789 - 4
// string $operators 运算符 "/+-*
// return array 运算符和操作数分开的数组。
public static function splitCalc($string, $operators)
//验证邮箱地址是否合法
public static function validEmail($email)
//字符串转为ASCII字符串(unicode)
public static function idnaEncode($value)
//下划线命名转为首字母大写的驼峰命名
public static function underscoredToUpperCamelCase($string)
//下划线命名转为首字母小写的驼峰命名
public static function underscoredToLowerCamelCase($string)
//驼峰命名转为下划线命名
public static function camelCaseToLowerCaseUnderscored($string)
//验证给定链接是否合法(是否可访问)
public static function isValidUrl($url)
3、数组处理
//分解由$delimiter分隔的$string并将数组中的每个项目强制转换为(int)。
public static function intExplode($delimiter, $string, $removeEmptyValues = false, $limit = 0)
//解释不来,看例子:GeneralUtility::revExplode('[]', '[my][words][here]', 2) 输出:array('[my][words', 'here]')
public static function revExplode($delimiter, $string, $count = 0)
//把$string按照指定字符$delim转为数组,并去掉空白值
public static function trimExplode($delim, $string, $removeEmptyValues = false, $limit = 0)
/数组转为Url参数
public static function implodeArrayForUrl($name, $theArray, $str = '', $skipBlank = false, $rawurlencodeParamName = false)
//Url参数转为数组
public static function explodeUrl2Array($string)
//返回键名为$varList列表的数组
// string $varList 变量/键名列表
// array $getArray 来源数组
// bool $GPvarAlt get/post数据作为来源数组
public static function compileSelectedGetVarsFromArray($varList, array $getArray, $GPvarAlt = true)
//从ts配置文件中删除'.'
public static function removeDotsFromTS(array $ts)
4、HTML/XML 处理方式
//以键值对格式返回指定html标签
public static function get_tag_attributes($tag)
//数组转为HTML参数:输入eg. "bgcolor"=>"red", "border"=>0;输出eg. 'bgcolor="red" border="0"'
public static function implodeAttributes(array $arr, $xhtmlSafe = false, $dontOmitBlankAttribs = false)
//使用<script>标签 包装JavaScript代码XHTML
public static function wrapJS($string)
//XML转为树结构数组
public static function xml2tree($string, $depth = 999, $parserOptions = [])
//数组转为xml
public static function array2xml(array $array, $NSprefix = '', $level = 0, $docTag = 'phparray', $spaceInd = 0, array $options = [], array $stackData = [])
//xml转为数组
public static function xml2array($string, $NSprefix = '', $reportDocTag = false)
//压缩 JavaScript
public static function minifyJavaScript($script, &$error = '')
5、FILES 处理函数
//读取文件或URL $url并返回内容
public static function getUrl($url, $includeHeader = 0, $requestHeaders = null, &$report = null)
//在文件$file中写入内容$content
public static function writeFile($file, $content, $changePermissions = false)
//设置文件系统模式和文件或文件夹的组所有权
public static function fixPermissions($path, $recursive = false)
//在文件$filepath中写入内容$content 文件存放在 typo3temp/ 目录下
public static function writeFileToTypo3tempDir($filepath, $content)
//创建目录
public static function mkdir($newFolder)
//创建目录-必要时包括父目录,并在新创建的目录上设置权限
public static function mkdir_deep($directory)
//删除目录;递归删除子目录及文件
public static function rmdir($path, $removeNonEmpty = false)
//通过首先移至临时资源,然后触发删除过程来刷新目录。这样可以更快地刷新目录,以防止在并发进程访问同一目录时出现争用情况。
public static function flushDirectory($directory, $keepOriginalDirectory = false, $flushOpcodeCache = false)
/返回具有特定路径中文件夹名称的数组。如果读取目录内容时出错,将返回“错误”(字符串)。如果提供的路径为false,则将返回null
public static function get_dirs($path)
//查找给定路径中的所有文件,并将它们作为数组返回。每个数组键都是文件完整路径的md5哈希。这样做是因为诸如导入/导出扩展之类的“某些”扩展依赖于此。
public static function getFilesInDir($path, $extensionList = '', $prependPath = false, $order = '', $excludePattern = '')
//递归查找目录中的所有文件和文件夹
public static function getAllFilesAndFoldersInPath(array $fileArr, $path, $extList = '', $regDirs = false, $recursivityLevels = 99, $excludePattern = '')
//删除$fileArr中所有文件/文件夹的绝对部分
public static function removePrefixPathFromList(array $fileArr, $prefixToRemove)
//修复Windows反斜杠的路径,并将双斜杠减少为单斜杠
public static function fixWindowsFilePath($theFile)
//解析路径中的 "../"
public static function resolveBackPath($pathStr)
//返回可跳转的链接
public static function locationHeaderUrl($path)
//获取最大文件上传大小(KB)
public static function getMaxUploadFileSize()
//(G,M,K,)转为字节
public static function getBytesFromSizeMeasurement($measurement)
//文件添加静态版本号
public static function createVersionNumberedFilename($file)
//将JavaScript字符串写入以该字符串的md5-hash命名的临时文件
public static function writeJavaScriptContentToTemporaryFile(string $content)
//将Css字符串写入以该字符串的md5-hash命名的临时文件
public static function writeStyleSheetContentToTemporaryFile(string $content)
6、系统信息
//返回完整链接
public static function linkThisScript(array $getParams = [])
//$getParams中的参数添加到$url中并返回完整链接
public static function linkThisUrl($url, array $getParams = [])
//存储一个自定义变量,仅做测试用
public static function setIndpEnv($envName, $value)
//获取指定参数值 SCRIPT_NAME, SCRIPT_FILENAME, REQUEST_URI, PATH_INFO, REMOTE_ADDR, REMOTE_HOST, HTTP_REFERER, HTTP_HOST, HTTP_USER_AGENT, HTTP_ACCEPT_LANGUAGE, QUERY_STRING, TYPO3_DOCUMENT_ROOT, TYPO3_HOST_ONLY, TYPO3_HOST_ONLY, TYPO3_REQUEST_HOST, TYPO3_REQUEST_URL, TYPO3_REQUEST_SCRIPT, TYPO3_REQUEST_DIR, TYPO3_SITE_URL, _ARRAY
public static function getIndpEnv($getEnvName)
//获取unix毫秒时间戳。
public static function milliseconds()
7、TYPO3 特殊功能函数
//解析'EXT:'为文件绝对路径
public static function getFileAbsFileName($filename)
//检查恶意文件
public static function validPathStr($theFile)
//检查$path是绝对路径还是相对路径(检测'/'或'x:/'作为字符串的第一部分),如果是,则返回TRUE
public static function isAbsPath($path)
//如果路径是绝对路径,没有反向路径".."并且在TYPO3的项目或公用文件夹中,或者在lockRootPath中,则返回TRUE
public static function isAllowedAbsPath($path)
//根据"fileDenyPattern"验证输入文件名。如果确定,则返回TRUE。
public static function verifyFilenameAgainstDenyPattern($filename)
//递归复制目录下的所有文件和子目录
public static function copyDirectory($source, $destination)
//将$source文件上传到$destination目录(如果已上传),否则尝试进行复制
public static function upload_copy_move($source, $destination)
//将文件移动到临时目录
public static function upload_to_tempfile($uploadedFileName)
//删除 var/ 或者 typo3temp 目录中的临时文件
public static function unlink_tempfile($uploadedTempFileName)
//创建临时文件名(使用唯一的文件名创建文件)
public static function tempnam($filePrefix, $fileSuffix = '')
//标准身份验证代码
public static function stdAuthCode($uid_or_record, $fields = '', $codeLength = 8)
//如果不存在翻译,则响应输入的本地化设置值是否应隐藏其来源页面
public static function hideIfNotTranslated($l18n_cfg_fieldValue)
//如果未将“ l18n_cfg”字段值设置为隐藏,则返回true
public static function hideIfDefaultLanguage($localizationConfiguration)
//在类中调用用户定义的函数/方法
public static function callUserFunction($funcName, &$params, &$ref)
//刷新内部运行时缓存
public static function flushInternalRuntimeCaches()
//引用一个用作JS参数的字符串。
public static function quoteJSvalue($value)
网友评论