php字符串长度

常用的字符串函数

感情迁移 提交于 2019-12-13 05:16:06
以下每个内容都包含源代码及输出结果 1.mb_strlen :长度计算 <?php echo mb_strlen('asdsad'); 2.addslashes :将预定义的字符添加反斜杠转义 <?php echo addslashes("''"); 3.bin2hex:将2进制字符串转换为16进制 <?php echo bin2hex("w655sss"); 4.hex2bin:将16进制字符串转换为2进制 <?php echo hex2bin("77363535737373"); 5.chop :移除字符串右侧的空白字符或者其他字符,这些字符需要自己指定的,默认就是空白字符 <?php echo chop("tgdff","ff"); 6.chr:将指定的ascii值转换成字符 <?php $str=chr(104).chr(101).chr(108).chr(108). chr(111).chr(119).chr(111).chr(114). chr(108).chr(100).chr(33).chr(126); echo $str; echo "<br>"; 7.crypt:对字符串单项加密,不可逆转。 <?php $mima=crypt("asdasd",'$1$asdasdsad'); echo $mima; 8.htmlentities:将字符串转换为html实体 <

PHP字符串的总结

末鹿安然 提交于 2019-12-11 14:56:48
1.strlen()与 mb_strlen() 都可以用来计算字符串长度,区别在于mb_strlen可以计算中文字符串长度 第一个结果:init(10) 第二个结果:init (6) 2.addslashes() 将预定义的字符添加反斜杠转义 输出结果:string(10) “that’s ok” 3.bin2hex()将ascii字符串转换为16进制 输出结果:68656c6c6f776f726c64 4…chop()移除字符串右侧的空白字符或者其他字符,这些字符需要自己指定的,默认就是空白字符 输出结果:hello world !! 5.chr()将指定的ascii值转换成字符 输出结果:hellworld!~ 6.crypt()对字符串单项加密,不可逆转,类似于做md5值 输出结果:$6 6 k r . Q M 6kr.QM 6 k r . Q M XTLdHa89UgNObVsVsO0GBa8Rj5cplPdYA.ruZ8xXiYNYRJN43zr.QN7zHa7jweW9oWtCu5UO56owznm79aQrG/ 7.htmlentities()将字符串转换为html实体 输出结果: 8.implode() 返回一个由数组元素组合成的字符串 与explode()相反作用 输出结果:12345 9.md5()计算字符串的md5值 输出结果

PHP如何写扩展

╄→尐↘猪︶ㄣ 提交于 2019-12-10 07:29:40
PHP取得成功的一个主要原因之一是她拥有大量的可用扩展。web开发者无论有何种需求,这种需求最有可能在PHP发行包里找到。PHP发行包包括支持各种数据库,图形文件格式,压缩,XML技术扩展在内的许多扩展。 扩展API的引入使PHP3取得了巨大的进展,扩展API机制使PHP开发社区很容易的开发出几十种扩展。现在,两个版本过去了,API仍然和PHP3时的非常相似。扩展主要的思想是:尽可能的从扩展编写者那里隐藏PHP的内部机制和脚本引擎本身,仅仅需要开发者熟悉API。 有两个理由需要自己编写PHP扩展。第一个理由是:PHP需要支持一项她还未支持的技术。这通常包括包裹一些现成的C函数库,以便提供PHP接口。例如,如果一个叫FooBase的数据库已推出市场,你需要建立一个PHP扩展帮助你从PHP里调用FooBase的C函数库。这个工作可能仅由一个人完成,然后被整个PHP社区共享(如果你愿意的话)。第二个不是很普遍的理由是:你需要从性能或功能的原因考虑来编写一些商业逻辑。 如果以上的两个理由都和你没什么关系,同时你感觉自己没有冒险精神,那么你可以跳过本章。 本章教你如何编写相对简单的PHP扩展,使用一部分扩展API函数。对于大多数打算开发自定义PHP扩展开发者而言,它含概了足够的资料。学习一门编程课程的最好方法之一就是动手做一些极其简单的例子,这些例子正是本章的线索。一旦你明白了基础的东西

PHP算法之电话号码的字母组合

孤者浪人 提交于 2019-12-09 22:27:56
给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。 给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。 示例: 输入:"23" 输出:["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"]. 说明: 尽管上面的答案是按字典序排列的,但是你可以任意选择答案输出的顺序。 来源:力扣(LeetCode) class Solution { /** * @param String $digits * @return String[] */ function letterCombinations($digits) { if (empty($digits)) { return []; } // 先创建字典 $model = ["0","1","abc","def","ghi","jkl","mno","pqrs","tuv","wxyz"]; // 创建一个用于模拟队列的数组 $resultList = ['']; // 循环输入$digits for ($i=0; $i < strlen($digits); $i++) { // 先获取当前$i对应的输入的字符串 // 再使用intval 转成整形,用于根据键值对取对应的字符串 $mappIndex = intval($digits[$i]); //

PHP截断函数mb_substr()详解

孤街浪徒 提交于 2019-12-07 16:22:05
在php中mb_substr()函数是用来截中文与英文的函数 mb_substr()函数在php中默认是不被支持的,我们需要在在windows目录下找到php.ini,搜索mbstring.dll,找到;extension=php_mbstring.dll,把前面的;号去掉才可以使用mb_substr()函数. Function: mb_substr( $str, $start, $length, $encoding ) $str,需要截断的字符串 $start,截断开始处 $length,长度(1就代表一个中文字符) $encoding,编码,我设为 utf-8 举例: <?php $str="我是一个好人!"; echo mb_substr($str,0,4,'utf-8'); //结果:我是一个 ?> <?php $str="I am a good man"; echo mb_substr($str,0,4,'utf-8'); //结果:I am ?> 类似的函数:mb_strcut()函数 <?php $str="I am a good man"; echo mb_substr($str,0,4,'utf-8'); //结果:I am ?> <?php $str="我是一个好人!"; echo mb_substr($str,0,4,'utf-8'); //结果:我 ?>

mb_substr()----------php

余生长醉 提交于 2019-12-07 02:53:20
PHP substr()函数可以分割文字,但要分割的文字如果包括中文字符往往会遇到问题,这时可以用mb_substr()/mb_strcut这个函数,mb_substr() /mb_strcut的用法与substr()相似,只是在mb_substr()/mb_strcut最后要加入多一个参数,以设定字符串的编码,但是 一般的服务器都没打开php_mbstring.dll,需要在php.ini中把php_mbstring.dll打开。 <?php echo mb_substr( '我们都是好孩子hehe' ,0,9); ?> 输出:我们都 现在我们加上字符集utf-8 <?php echo mb_substr( '我们都是好孩子hehe' ,0,9, 'utf-8' ); ?> 输出:我们都是好孩子he 第一个是以三个字节为一个中文,这就是utf-8编码的特点,下面加上utf-8字符集说明,所以,是以一个字为单位来截取的 下面是ecshop里面的截取UTF-8编码下字符串的函数 function sub_str($str, $length = 0, $append = true) { $str = trim($str); $strlength = strlen($str); if ($length == 0 || $length >= $strlength) { return

php截取中文字符串长度的mb_substr()、mb_strcut()函数

女生的网名这么多〃 提交于 2019-12-07 02:53:09
substr()函数可以用来分割文字,但要分割的文字如果包括中文字符往往会遇到问题,这时可以用mb_substr()/mb_strcut这个函数,mb_substr() /mb_strcut的用法与substr()相似,只是在mb_substr()/mb_strcut最后要加入多一个参数,以设定字符串的编码,但是 一般的服务器都没打开php_mbstring.dll,需要在php.ini在把php_mbstring.dll打开。 举个例子: <?php echo mb_substr('这样一来我的字符串就不会有乱码^_^', 0, 7, 'utf-8'); ?> 输出:这样一来我的字 <?php echo mb_strcut('这样一来我的字符串就不会有乱码^_^', 0, 7,'utf-8'); ?> 输出:这样 从上面的例子可以看出,mb_substr是按字来切分字符,而mb_strcut是按字节来切分字符,但是都不会产生半个字符的现象…… 上面一段是摘抄网络上的,结果都是经本人测试得出的。 个人理解: mb_substr()函数对英文或中文字符都表示一个单位。 mb_strcut()函数对中文字符是3个单位,英文是1个单位。 例如: <?php $str = "这样abcd一来"; echo "mb_substr:".mb_substr($str, 0, 5, 'utf-8'

PHP常用字符串函数

梦想的初衷 提交于 2019-12-06 11:54:39
explode() 拆分字符串 示例:explode(' ', 'Hello World') 结果为: ['Hello', 'World'] str_replace() 字符串替换 示例:str_replace( 'H', 'W', "Hello world") 结果为:"Wello world" strpos() 查找字符串在另一字符串中的第一次出现的位置 大小写敏感 示例:strpos("Hello", "H") 结果: 0 strpos("Hello", "J") 结果:false md5() 简单的加密 不可逆(就是不能通过加密值推算出加密前的值) 示例:md5(123); 结果为: 自己测去 vat_dump() 打印数据 一般用于断点使用 strlens() 计算字符串的长度 示例:strlens('123123') 结果:6 trim() 去除字符串两侧的空白字符或其他预定义字符ltrim() 去除左侧rtrim() 去除右侧 trim(" Hello World!") 结果为: "Hello World!" ucfirst() 首字母大写 示例:ucfirst("test string") 结果:Test string ucwords() 字符串中的每个单词首字母都大写 示例:ucwords("test string") 结果:Test String

PHP代码审计基础

谁说我不能喝 提交于 2019-12-06 09:49:32
php核心配置 php.ini 基本配置 语法 大小写敏感 运算符 空值的表达式 安全模式 安全模式 safe_mode = off 用来限制文档的存取,限制环境变量的存取,控制外部程序的执行. PHP5.4.0移除 限制环境变量存取 safe_mode_allowed_env_vars = string 指定php程序可以改变的环境变量的前缀,当这个选项的值为空时,那么php可以改变任何环境变量,如果 如:safe_mode_allowed_env_vars = PHP_,当这个选项的值为空时,那么php可以改变任何环境变量 外部程序执行目录 `safe_mode_exec_dir = "e:\loalxxx" 禁用函数 disable_functions 为了更安全的运行PHP,可以用此指令来禁止一些敏感函数的使用,当你想用本指令禁止一些危险函数时,切记把dl()函数也加到禁止列表,攻击者可以利用dl()函数加载自定义的php扩展突破disable_functions.配置禁止函数时可以使用逗号分隔函数名 COM组件 com.allow_dcom = false PHP设置在安全模式下(safe_mode),仍允许攻击者使用COM()函数来创建系统组件来还行任意命令,推荐关闭这个函数 使用COM()函数需要在PHP.ini中配置 extension=php_com_dotnet

PHP算法之无重复字符的最长子串

為{幸葍}努か 提交于 2019-12-05 22:58:08
给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。 示例 1: 输入: "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。 示例 2: 输入: "bbbbb" 输出: 1 解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。 示例 3: 输入: "pwwkew" 输出: 3 解释: 因为无重复字符的最长子串是 "wke",所以其长度为 3。 请注意,你的答案必须是 子串 的长度,"pwke" 是一个子序列,不是子串。 class Solution { /** * @param String $s * @return Integer */ function lengthOfLongestSubstring($s) { $l = strlen($s); //获取字符串总长度 $len = 0; //记录长度 $find = ''; //保存截取字符串 for($i=0;$i<$l;$i++){ $res = strpos($find,$s[$i]); // 查找$find中是否存在 if($res !== false){ $find.=$s[$i]; $find = substr($find,$res+1); }else{ $find.=$s[$i]; } $len = strlen($find) > $len