多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
# 第五课 字符串 > 字符长度 ``` <pre class="calibre14">``` <span class="token1">strlen</span><span class="token2">(</span>$str<span class="token2">)</span> 中文utf8中<span class="token3">3</span>个长度 其他字符<span class="token3">1</span>个<span class="token2">,</span>gb2312中中文<span class="token3">2</span>个 <span class="token1">mb_strlen</span><span class="token2">(</span>$str1<span class="token2">,</span><span class="token4">'utf-8'</span><span class="token2">)</span><span class="token2">;</span> ``` ``` > 截取,字符串截取,用于英文,长度每个汉字utf8占3字符 ``` <pre class="calibre14">``` <span class="token1">substr</span><span class="token2">(</span>$str1<span class="token2">,</span><span class="token3">0</span><span class="token2">,</span><span class="token3">6</span><span class="token2">)</span><span class="token2">;</span> 开始位置<span class="token3">0</span><span class="token2">,</span>长度 <span class="token1">mb_substr</span><span class="token2">(</span><span class="token4">'曾经年少爱追梦一心只想往前飞'</span><span class="token2">,</span> <span class="token3">0</span><span class="token2">,</span> <span class="token3">7</span><span class="token2">,</span><span class="token4">'utf-8'</span><span class="token2">)</span><span class="token2">;</span> ``` ``` > 查找替换,查找c替换成qqq ``` <pre class="calibre14">``` <span class="token1">str_replace</span><span class="token2">(</span><span class="token4">'c'</span><span class="token2">,</span><span class="token4">'qqq'</span><span class="token2">,</span><span class="token4">'abcdefg'</span><span class="token2">)</span><span class="token2">;</span> ``` ``` > header ``` <pre class="calibre14">``` <span class="token1">header</span><span class="token2">(</span><span class="token4">"Content-Type:text/html;charset=UTF-8"</span><span class="token2">)</span><span class="token2">;</span> <span class="token1">header</span><span class="token2">(</span><span class="token4">'Content-type: text/css'</span><span class="token2">)</span><span class="token2">;</span> css <span class="token1">header</span><span class="token2">(</span><span class="token4">'Content-type: text/javascript'</span><span class="token2">)</span><span class="token2">;</span> js <span class="token1">header</span><span class="token2">(</span><span class="token4">'Content-type: image/jpeg'</span><span class="token2">)</span><span class="token2">;</span> jpg <span class="token1">header</span><span class="token2">(</span><span class="token4">'Content-type: application/json'</span><span class="token2">)</span><span class="token2">;</span> json <span class="token1">header</span><span class="token2">(</span><span class="token4">'Content-type: text/plain'</span><span class="token2">)</span><span class="token2">;</span> txt <span class="token1">header</span><span class="token2">(</span><span class="token4">'Content-type: text/xml'</span><span class="token2">)</span><span class="token2">;</span> xml <span class="token1">header</span><span class="token2">(</span><span class="token4">'HTTP/1.1 200 OK'</span><span class="token2">)</span><span class="token2">;</span> <span class="token3">200</span> 正常ok <span class="token1">header</span><span class="token2">(</span><span class="token4">"HTTP/1.1 404 Not Found"</span><span class="token2">)</span><span class="token2">;</span>未找到 <span class="token1">header</span><span class="token2">(</span><span class="token4">"http/1.1 403 Forbidden"</span><span class="token2">)</span><span class="token2">;</span>无权限 <span class="token1">header</span><span class="token2">(</span><span class="token4">"http/1.1 301 Moved Permanently"</span><span class="token2">)</span><span class="token2">;</span>重定向 <span class="token1">header</span><span class="token2">(</span><span class="token4">'HTTP/1.1 304 Not Modified'</span><span class="token2">)</span><span class="token2">;</span>没改变 <span class="token1">header</span><span class="token2">(</span><span class="token4">'Location: http://www.example.org/'</span><span class="token2">)</span><span class="token2">;</span> <span class="token1">header</span><span class="token2">(</span><span class="token4">'Refresh: 10; url=http://www.example.org/'</span><span class="token2">)</span><span class="token2">;</span> <span class="token1">header</span><span class="token2">(</span><span class="token4">'Content-Disposition: attachment; filename="downloaded.pdf"'</span><span class="token2">)</span><span class="token2">;</span> 跨域 <span class="token1">header</span><span class="token2">(</span><span class="token4">'Access-Control-Allow-Origin: *'</span><span class="token2">)</span><span class="token2">;</span> <span class="token1">header</span><span class="token2">(</span><span class="token4">'Access-Control-Allow-Headers:content-type'</span><span class="token2">)</span><span class="token2">;</span> <span class="token1">header</span><span class="token2">(</span><span class="token4">'Content-Type:application/json; charset=utf-8'</span><span class="token2">)</span><span class="token2">;</span> ``` ``` > serialize 和unserialize 序列化和反序列化 > json\_encode($arr)和json\_decode($json,TRUE)true是返回数组 默认对象 json\_encode($arr,JSON\_UNESCAPED\_UNICODE ) 编码后还是中文 > urlencode 和urldecode url编码和解码 ``` <pre class="calibre14">``` <span class="token1">mb_convert_encoding</span><span class="token2">(</span><span class="token4">'李太白'</span><span class="token2">,</span><span class="token4">"utf-8"</span><span class="token2">,</span><span class="token4">'auto'</span><span class="token2">)</span><span class="token2">;</span>自动转换成uft8 <span class="token1">iconv</span><span class="token2">(</span><span class="token4">'utf-8'</span><span class="token2">,</span><span class="token4">'gb2312//IGNORE'</span><span class="token2">,</span><span class="token4">'礼拜是谁'</span><span class="token2">)</span><span class="token2">;</span>转换成gb2312 ``` ``` > strtolower转换小写 strtoupper转换成大写 ``` <pre class="calibre14">``` <span class="token1">strtolower</span><span class="token2">(</span><span class="token4">'wEws2'</span><span class="token2">)</span><span class="token2">;</span> ``` ``` > strip\_tags($rs0); 去除标签 > error\_reporting(0);禁止显示错误 > error\_reporting(E\_ALL)显示错误 ``` <pre class="calibre14">``` <span class="token1">pathinfo</span><span class="token2">(</span>__FILE__<span class="token2">)</span> Array <span class="token2">(</span> <span class="token2">[</span>dirname<span class="token2">]</span> <span class="token">=</span><span class="token">></span> C<span class="token2">:</span>\www <span class="token2">[</span>basename<span class="token2">]</span> <span class="token">=</span><span class="token">></span> Codelobster1<span class="token2">.</span>php <span class="token2">[</span>extension<span class="token2">]</span> <span class="token">=</span><span class="token">></span> php <span class="token2">[</span>filename<span class="token2">]</span> <span class="token">=</span><span class="token">></span> Codelobster1 <span class="token2">)</span> ``` ``` 添加和去除转义符 ``` <pre class="calibre14">``` <span class="token1">addslashes</span><span class="token2">(</span><span class="token4">"wo \' \"ni是"</span><span class="token2">)</span><span class="token2">;</span> 入库添加反斜杠 <span class="token1">stripslashes</span><span class="token2">(</span><span class="token4">"wo \' \"ni是"</span><span class="token2">)</span><span class="token2">;</span> ``` ``` > 转换实体和还原 ``` <pre class="calibre14">``` <span class="token1">htmlspecialchars_decode</span><span class="token2">(</span>$str<span class="token2">)</span> <span class="token1">htmlspecialchars</span><span class="token2">(</span><span class="token4">"你是"</span><span class="token2">,</span>ENT_NOQUOTES<span class="token2">,</span><span class="token4">'UTF-8'</span><span class="token2">)</span><span class="token2">;</span> ``` ``` > 检测扩展是否存在,curl,gd,openssl ``` <pre class="calibre14">``` <span class="token1">extension_loaded</span><span class="token2">(</span><span class="token4">'memcache'</span><span class="token2">)</span><span class="token2">;</span> <span class="token1">function_exists</span><span class="token2">(</span><span class="token4">'curl_init'</span><span class="token2">)</span><span class="token2">;</span><span class="token6">//检测函数是否存在</span> <span class="token1">class_exists</span><span class="token2">(</span><span class="token4">'MyClass'</span><span class="token2">)</span><span class="token2">)</span> 检测类是否存在 <span class="token1">get_extension_funcs</span><span class="token2">(</span><span class="token4">"xml"</span><span class="token2">)</span><span class="token2">;</span> 显示所有方法 <span class="token1">get_loaded_extensions</span><span class="token2">(</span><span class="token2">)</span> 显示所有扩展 <span class="token1">get_defined_constants</span><span class="token2">(</span><span class="token3">true</span><span class="token2">)</span><span class="token2">[</span><span class="token4">'user'</span><span class="token2">]</span>一已定义常量 $arr <span class="token">=</span> <span class="token1">get_defined_functions</span><span class="token2">(</span><span class="token2">)</span><span class="token2">;</span>$arr<span class="token2">[</span><span class="token4">'user'</span><span class="token2">]</span> 已定义函数 ``` ``` > 如果自动添加转义符没有打开则使用以下 ``` <pre class="calibre14">``` <span class="token5">if</span><span class="token2">(</span><span class="token">!</span><span class="token1">get_magic_quotes_gpc</span><span class="token2">(</span><span class="token2">)</span><span class="token2">)</span><span class="token2">{</span> <span class="token1">addslashes</span><span class="token2">(</span>$var<span class="token2">)</span> <span class="token2">}</span> ``` ``` > 解析url ``` <pre class="calibre14">``` <span class="token1">parse_url</span><span class="token2">(</span><span class="token4">"http://www.baidu.com/4/1.php?qq=1&d=1#123"</span><span class="token2">)</span><span class="token2">;</span> Array <span class="token2">(</span> <span class="token2">[</span>scheme<span class="token2">]</span> <span class="token">=</span><span class="token">></span> http <span class="token2">[</span>host<span class="token2">]</span> <span class="token">=</span><span class="token">></span> www<span class="token2">.</span>baidu<span class="token2">.</span>com <span class="token2">[</span>path<span class="token2">]</span> <span class="token">=</span><span class="token">></span> <span class="token">/</span><span class="token3">4</span><span class="token">/</span><span class="token3">1.</span>php <span class="token2">[</span>query<span class="token2">]</span> <span class="token">=</span><span class="token">></span> qq<span class="token">=</span><span class="token3">1</span><span class="token">&</span>d<span class="token">=</span><span class="token3">1</span> <span class="token2">[</span>fragment<span class="token2">]</span> <span class="token">=</span><span class="token">></span> <span class="token3">123</span> <span class="token2">)</span> ``` ``` > 解析字符串 ``` <pre class="calibre14">``` <span class="token1">parse_str</span><span class="token2">(</span><span class="token4">"id=23&name=John%20Adams"</span><span class="token2">,</span>$arr<span class="token2">)</span><span class="token2">;</span>输出$arr Array <span class="token2">(</span> <span class="token2">[</span>id<span class="token2">]</span> <span class="token">=</span><span class="token">></span> <span class="token3">23</span> <span class="token2">[</span>name<span class="token2">]</span> <span class="token">=</span><span class="token">></span> John Adams <span class="token2">)</span> ``` ``` 变量数组互换 ``` <pre class="calibre14">``` $arr <span class="token">=</span> <span class="token1">array</span><span class="token2">(</span><span class="token4">'qq'</span><span class="token">=</span><span class="token">></span><span class="token3">1</span><span class="token2">,</span><span class="token4">'ss'</span><span class="token">=</span><span class="token">></span><span class="token3">5</span><span class="token2">)</span><span class="token2">;</span> <span class="token1">extract</span><span class="token2">(</span>$arr<span class="token2">)</span><span class="token2">;</span><span class="token6">//转换成变量</span> $a<span class="token">=</span><span class="token3">1</span><span class="token2">;</span>$b<span class="token">=</span><span class="token3">2</span><span class="token2">;</span> $arr <span class="token">=</span> <span class="token1">compact</span><span class="token2">(</span><span class="token4">'a'</span><span class="token2">,</span><span class="token4">'b'</span><span class="token2">)</span><span class="token2">;</span> ``` ``` > 获取输入,post可用 ``` <pre class="calibre14">``` $str<span class="token">=</span><span class="token1">file_get_contents</span><span class="token2">(</span><span class="token4">'php://input'</span><span class="token2">)</span><span class="token2">;</span> 等同$_POST<span class="token2">,</span>用于 ``` ``` > $\_SERVER ``` <pre class="calibre14">``` OS系统 <span class="token2">[</span>HTTP_HOST<span class="token2">]</span> <span class="token">=</span><span class="token">></span> localhost 域名 <span class="token2">[</span>HTTP_USER_AGENT<span class="token2">]</span> <span class="token">=</span><span class="token">></span> Mozilla<span class="token">/</span><span class="token3">5.0</span> <span class="token2">(</span>Windows NT <span class="token3">6.2</span><span class="token2">;</span> WOW64<span class="token2">;</span> Trident<span class="token">/</span><span class="token3">7.0</span><span class="token2">;</span> rv<span class="token2">:</span><span class="token3">11.0</span><span class="token2">)</span> like Gecko <span class="token2">[</span>SERVER_SOFTWARE<span class="token2">]</span> <span class="token">=</span><span class="token">></span> nginx<span class="token">/</span><span class="token3">1.9</span><span class="token3">.9</span> <span class="token2">[</span>REQUEST_METHOD<span class="token2">]</span> <span class="token">=</span><span class="token">></span> GET <span class="token2">[</span>SCRIPT_FILENAME<span class="token2">]</span> <span class="token">=</span><span class="token">></span> C<span class="token2">:</span><span class="token">/</span>www<span class="token">/</span>Codelobster1<span class="token2">.</span>php <span class="token2">[</span>SERVER_ADDR<span class="token2">]</span> <span class="token">=</span><span class="token">></span> <span class="token3">127.0</span><span class="token3">.0</span><span class="token3">.1</span> <span class="token2">[</span>REMOTE_ADDR<span class="token2">]</span> <span class="token">=</span><span class="token">></span> <span class="token3">127.0</span><span class="token3">.0</span><span class="token3">.1</span> <span class="token2">[</span>REQUEST_URI<span class="token2">]</span> <span class="token">=</span><span class="token">></span> <span class="token">/</span>Codelobster1<span class="token2">.</span>php<span class="token">?</span>qq<span class="token">=</span><span class="token3">1</span> ``` ``` > 生成id ``` <pre class="calibre14">``` <span class="token1">uniqid</span><span class="token2">(</span><span class="token2">)</span> 默认<span class="token3">13</span> <span class="token1">uniqid</span><span class="token2">(</span><span class="token4">'y_'</span><span class="token2">,</span><span class="token3">1</span><span class="token2">)</span><span class="token2">;</span> <span class="token3">25</span> 没有 y_则是<span class="token3">23</span> ``` ``` > 字符串反序 > `strrev("abc")` 去除html标签 `strip_tags($str)`