TYPO3功能API解析 - GeneralUtility(无图)

原文链接:https://www.whongbin.cn/article-detail/133.html

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)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 196,165评论 5 462
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 82,503评论 2 373
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 143,295评论 0 325
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,589评论 1 267
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,439评论 5 358
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,342评论 1 273
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,749评论 3 387
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,397评论 0 255
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,700评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,740评论 2 313
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,523评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,364评论 3 314
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,755评论 3 300
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,024评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,297评论 1 251
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,721评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,918评论 2 336