站三界导航
首页 PHP代码
  • php代码规范要求,PHP代码规范的10个好习惯
    php代码规范要求,PHP代码规范的10个好习惯

    PHP被称为dirtybutquick的编程语言。尽管在其它编程语言使用者看来,PHP程序并不简洁美观,但是我们可以通过一些优秀的编程习惯,也能让PHP的代码看起来比较舒服优雅。有哪些方法呢?下面逐一说下。1.规划代码结构优秀的PHP代码应该有清晰的结构。PHP面向对象的特性允许程序员将应用程序分解为函数或方法。如果代码晦涩难懂,你也可以添加注释,使代码的功能一目了然。编码时应尽量将前端代码(HTML/CSS/JavaScript)与应用程序的服务端规则分开,或者你可以使用遵循MVC模式的PHP框架来构建你的应用程序。2.编码风格统一优秀的PHP代码应该具备统一的风格。比如,为变量和函数制定统一的命名规则,为循环任务(比如数据库存取、错误处理)制定统一的接入标准,或者保持有规律的代码缩进,这些编码习惯都可以让别人阅读代码更加轻松。3.可移植性优秀的PHP代码应该具有可移植性。程序员应学会运用PHP现有的特性(比如魔术引号和短标签等),应该了解产品需求,适应PHP的特点,保证写出的PHP代码具有可移植性和跨平台性。4.代码安全性优秀的PHP代码应该具有安全性。PHP5具有卓越的特性和灵活性,但应用程序的安全往往掌握在程序员的手中。作为专业的PHP开发人员,应该对安全漏洞有一些深入了解,常见的安全漏洞有跨站脚本攻击(XSS)、跨站请求伪造(CSRF)、代码注入漏洞和字符编码漏洞等。使用PHP中的特定功能和函数(比如mysql_real_escape_string等)可以帮助程序员写出安全的代码。5.添加注释代码注释是代码中的重要组成部分,它解释了函数运行的目的,这种注释会在代码以后的维护中提供非常有用的帮助。6.避免简写标记应使用完整的起始标记,不推荐使用简写的起始标记。7.用单引号代替双引号由于PHP会对双引号中的内容进行变量搜索,为了避免这种搜索带来的性能影响,程序员应该使用单引号引用字符串。8.转义输出应该在htmlspecialchars函数中使用ENT_QUOTES参数,保证单引号(')也可以被转义。尽管没有规定必须这样做,但这是一个好习惯。9.使用逗号隔开字符串输出字符串连接符(.)可以将单一的字符串传递给echo语句进行输出,与之相比,逗号可以实现echo语句中字符串的分别输出,这对PHP来说是一个性能改善。10.在输出前检查传递值应该记得在输出前检查$_GET['query']的传递值。使用isset函数或是empty函数可以检查变量值是否为空。

    • PHP代码
    • 145阅读
    • 2022-09-27

  • PHP的301,302自动跳转代码
    PHP的301,302自动跳转代码

    301重定向就是页面永久性移走的意思,搜索引擎知道这个页面是301重定向的话,就会把旧的地址替换成重定向之后的地址。302重定向就是页面暂时性转移,搜索引擎处理302的话,不会将旧的地址替换成新的地址,保留旧地址,一个302的例子就是短链接服务,短链接会请求数据库找出长链接,然后使用302重定向到长链接去,这样的好处就是搜索引擎和一些浏览器不会保留短链接,而是使用长链接。301重定向PHP代码:<?php$the_host=$_SERVER['HTTP_HOST'];if($the_host=='ieflex.com'){Header("HTTP/1.1301MovedPermanently");Header("Location:http://www.zhansanjie.com");exit;}?>302重定向PHP代码:<?phpheader("Location: http://www.zhansanjie.com");exit;?>

    • PHP代码
    • 143阅读
    • 2022-09-27

  • 一个统计PHP代码行数的小代码
    一个统计PHP代码行数的小代码

    想统计一下项目中一共有多少行代码,结果没找到什么好的工具,就自己写了一个。效率不怎么样。<?php/***@param$dir*@returnint*/functioncountLine($dir){$count=0;if(is_dir($dir)){$files=scandir($dir);foreach($filesas$file){if($file[0]=='.')continue;$file=$dir."/".$file;if(is_dir($file)){$count+=countLine($file."/");}else{if(strpos($file,".php"))$count+=count(file($file));}}}else{$count+=count(file($dir));}return$count;}if(count($argv)<2){echo"lackparams\n";die;}$dir=$argv[1];echocountLine($dir)."\n";在命令行中运行,参数为要查询的文件或者目录的绝对路径。

    • PHP代码
    • 145阅读
    • 2022-09-27

  • 10个典型实用的PHP代码片段
    10个典型实用的PHP代码片段

    本文将介绍10个经常会用到的PHP代码片段,包括黑名单过滤、随机颜色生成器、从网上下载文件、Alexa/GooglePageRank、强制下载文件、用Email显示用户的Gravator头像、用cURL获取RSS订阅数、截取图片、检查网站是否宕机。一、黑名单过滤function is_spam($text, $file, $split = ':', $regex = false){     $handle = fopen($file, 'rb');     $contents = fread($handle, filesize($file));     fclose($handle);     $lines = explode("n", $contents); $arr = array(); foreach($lines as $line){ list($word, $count) = explode($split, $line); if($regex) $arr[$word] = $count; else $arr[preg_quote($word)] = $count; } preg_match_all("~".implode('|', array_keys($arr))."~", $text, $matches); $temp = array(); foreach($matches[0] as $match){ if(!in_array($match, $temp)){ $temp[$match] = $temp[$match] + 1; if($temp[$match] >= $arr[$word]) return true; } } return false; }  $file = 'spam.txt'; $str = 'This string has cat, dog word'; if(is_spam($str, $file)) echo 'this is spam'; else echo 'this is not spam';  ab:3 dog:3 cat:2 monkey:2二、随机颜色生成器function randomColor() {     $str = '#';     for($i = 0 ; $i < 6 ; $i++) {         $randNum = rand(0 , 15);         switch ($randNum) {             case 10: $randNum = 'A'; break;             case 11: $randNum = 'B'; break;             case 12: $randNum = 'C'; break;             case 13: $randNum = 'D'; break;             case 14: $randNum = 'E'; break;             case 15: $randNum = 'F'; break;         }         $str .= $randNum;     }     return $str; } $color = randomColor();三、从网上下载文件set_time_limit(0); // Supports all file types // URL Here: $url = 'http://somsite.com/some_video.flv'; $pi = pathinfo($url); $ext = $pi['extension']; $name = $pi['filename'];  // create a new cURL resource $ch = curl_init();  // set URL and other appropriate options curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_HEADER, false); curl_setopt($ch, CURLOPT_BINARYTRANSFER, true); curl_setopt($ch, CURLOPT_AUTOREFERER, true); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);  // grab URL and pass it to the browser $opt = curl_exec($ch);  // close cURL resource, and free up system resources curl_close($ch);  $saveFile = $name.'.'.$ext; if(preg_match("/[^0-9a-z._-]/i", $saveFile)) $saveFile = md5(microtime(true)).'.'.$ext;  $handle = fopen($saveFile, 'wb'); fwrite($handle, $opt); fclose($handle);四、Alexa/GooglePageRankfunction page_rank($page, $type = 'alexa'){ switch($type){ case 'alexa': $url = 'http://alexa.com/siteinfo/'; $handle = fopen($url.$page, 'r'); break; case 'google': $url = 'http://google.com/search?client=navclient-auto&ch=6-1484155081&features=Rank&q=info:'; $handle = fopen($url.'http://'.$page, 'r'); break; } $content = stream_get_contents($handle); fclose($handle); $content = preg_replace("~(n|t|ss+)~",'', $content); switch($type){ case 'alexa': if(preg_match('~<div class="data (down|up)"><img.+?>(.+?) </div>~im',$content,$matches)){ return $matches[2]; }else{ return FALSE; } break; case 'google': $rank = explode(':',$content); if($rank[2] != '') return $rank[2]; else return FALSE; break; default: return FALSE; break; } } // Alexa Page Rank: echo 'Alexa Rank: '.page_rank('techug.com'); echo ' '; // Google Page Rank echo 'Google Rank: '.page_rank('techug.com', 'google');五、强制下载文件$filename = $_GET['file']; //Get the fileid from the URL // Query the file ID $query = sprintf("SELECT * FROM tableName WHERE id = '%s'",mysql_real_escape_string($filename)); $sql = mysql_query($query); if(mysql_num_rows($sql) > 0){ $row = mysql_fetch_array($sql); // Set some headers header("Pragma: public"); header("Expires: 0"); header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); header("Content-Type: application/force-download"); header("Content-Type: application/octet-stream"); header("Content-Type: application/download"); header("Content-Disposition: attachment; filename=".basename($row['FileName']).";"); header("Content-Transfer-Encoding: binary"); header("Content-Length: ".filesize($row['FileName']));  @readfile($row['FileName']); exit(0); }else{ header("Location: /"); exit; }六、用Email显示用户的Gravator头像$gravatar_link = 'http://www.gravatar.com/avatar/' . md5($comment_author_email) . '?s=32'; echo '<img src="' . $gravatar_link . '" />';七、用cURL获取RSS订阅数$ch = curl_init(); curl_setopt($ch,CURLOPT_URL,'https://feedburner.google.com/api/awareness/1.0/GetFeedData?id=7qkrmib4r9rscbplq5qgadiiq4'); curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,2); $content = curl_exec($ch); $subscribers = get_match('/circulation="(.*)"/isU',$content); curl_close($ch);八、时间差异计算function ago($time) {    $periods = array("second", "minute", "hour", "day", "week", "month", "year", "decade"); $lengths = array("60","60","24","7","4.35","12","10");  $now = time();  $difference = $now - $time; $tense = "ago";  for($j = 0; $difference >= $lengths[$j] && $j < count($lengths)-1; $j++) { $difference /= $lengths[$j]; }  $difference = round($difference);  if($difference != 1) { $periods[$j].= "s"; }  return "$difference $periods[$j] 'ago' "; }九、截取图片$filename= "test.jpg"; list($w, $h, $type, $attr) = getimagesize($filename); $src_im = imagecreatefromjpeg($filename);  $src_x = '0'; // begin x $src_y = '0'; // begin y $src_w = '100'; // width $src_h = '100'; // height $dst_x = '0'; // destination x $dst_y = '0'; // destination y  $dst_im = imagecreatetruecolor($src_w, $src_h); $white = imagecolorallocate($dst_im, 255, 255, 255); imagefill($dst_im, 0, 0, $white);  imagecopy($dst_im, $src_im, $dst_x, $dst_y, $src_x, $src_y, $src_w, $src_h);  header("Content-type: image/png"); imagepng($dst_im); imagedestroy($dst_im);十、检查网站是否宕机function Visit($url){        $agent = "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)";$ch=curl_init(); curl_setopt ($ch, CURLOPT_URL,$url ); curl_setopt($ch, CURLOPT_USERAGENT, $agent); curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt ($ch,CURLOPT_VERBOSE,false); curl_setopt($ch, CURLOPT_TIMEOUT, 5); curl_setopt($ch,CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($ch,CURLOPT_SSLVERSION,3); curl_setopt($ch,CURLOPT_SSL_VERIFYHOST, FALSE); $page=curl_exec($ch); //echo curl_error($ch); $httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE); curl_close($ch); if($httpcode>=200 && $httpcode<300) return true; else return false; } if (Visit("http://www.zhansanjie.com")) echo "Website OK"."n"; else echo "Website DOWN"; 

    • PHP代码
    • 139阅读
    • 2022-09-27

  • PHP如何返回json数据
    PHP如何返回json数据

    1、返回json数据:header('Content-Type:application/json;charset=utf-8');$arr = array('a'=>1,'b'=>2);exit(json_encode($data));注意:如果不加header直接输出json_encode的值的话,返回的是字符串不是对象,js那边就需要先eval('('+data+')')转化为对象,再取值。2、返回xml数据:header('Content-Type:text/xml;charset=utf-8');exit($xml);3、返回jsonp数据:$arr = array('a'=>1,'b'=>2,'c'=>3);$json =json_encode($arr);$callback = $_GET['callback'];exit($callback."($json)"); //注意callback是js传过来的参数名称thinkphp如何返回各种数据:$this->ajaxReturn(json_encode($arr),'JSON');$this->ajaxReturn(json_encode($arr),'JSONP');$this->ajaxReturn(json_encode($arr),'XML');json_encode有个参数禁止unicode编码JSON_UNESCAPED_UNICODEjson_encode('中文',JSON_UNESCAPED_UNICODE);默认中文编码header('Content-Type:application/json;charset=gbk');$data=$db->select($sql);$data=json_encode($data);$data=preg_replace("#\\\u([0-9a-f]{4})#ie","iconv('UCS-2BE','gbk',pack('H4','\\1'))",$data);exit($data);长度用count()$sjson=json_decode($res);for($i=0;$i<count($sjson);$i++){echo$sjson[$i];}

    • PHP代码
    • 140阅读
    • 2022-09-26

  • php 以多种分隔符拆分字符串
    php 以多种分隔符拆分字符串

    方法一:先将分隔符转换成统一字符,再使用explode进行拆分$arr=explode('#',str_replace(array(":"),'#',$string));方法二:使用preg_split拆分$string="php教程#php入门:教程#字符串:多分隔符#字符串:拆分#数组";$arr=preg_split("/(#|:)/",$string);print_r($arr);输出结果:Array(  [0]=>php教程  [1]=>php入门  [2]=>教程  [3]=>字符串  [4]=>多分隔符  [5]=>字符串  [6]=>拆分  [7]=>数组)

    • PHP代码
    • 56阅读
    • 2022-09-26

  • php时间戳转换函数及日期
    php时间戳转换函数及日期

    php时间戳转换的方法:1、使用“date("Y-m-dH:i",$unixtime)”方法把时间戳转换日期;2、通过“strtotime(“today”)”方法把日期转换成时间戳。在php中我们要把时间戳转换日期可以直接使用date函数来实现,如果要把日期转换成时间戳可以使用strtotime()函数实现,下面我来给大家举例说明。在线工具推荐:Unix时间戳转换工具1.php中时间转换函数strtotime(date())date("Y-m-dH:i",$unixtime)2.php中获得今天零点的时间戳要获得零点的unix时间戳,可以使用$todaytime=strtotime(“today”)然后再使用date("Y-m-dH:i",$todaytime)转换为日期。时间戳转换为日期时间戳转换函数:date("Y-m-dH:i:s",time()),"Y-m-dH:i:s"是转换后的日期格式,time()是获得当前时间的时间戳。如果是date("Y-m-dH:i:s",time()),则小时分秒一起显示;如果是date("Y-m-d",time()),只显示年月日。例如:date("Y-m-dH:i:s",time())转换后为:2022-07-1818:42:48date("Y-m-d",time())转换后为:2022-07-18日期转换为时间戳.classSaonekControllerextendsController{publicfunctionindexAction(){/*时间戳转换成日期不用说了但是日期要转成时间戳的话就要用到strtotime()*/$time=time();//时间戳$nowtime=date('Y-m-dH:i:s',$time);//生成带格式的日期$oldtime='2022-11-1022:19:21';$catime=strtotime($oldtime);//日期转换为时间戳$zhansanjie=date('Y-m-dH:i:s',$catime);//时间戳又转回日期了echo$zhansanjie;}}?>3.php中时间戳转换为日期,并按照时间显示不同的内容,如刚刚,分钟前,小时前,今天,昨天等/*时间转换函数*/functiontransTime($ustime){$ytime=date("Y-m-dH:i",$ustime);$rtime=date("n月j日H:i",$ustime);$htime=date("H:i",$ustime);$time=time()-$ustime;$todaytime=strtotime("today");$time1=time()-$todaytime;if($time<60){$str='刚刚';}elseif($time<60*60){$min=floor($time/60);$str=$min.'分钟前';}elseif($time<$time1){$str='今天'.$htime;}else{$str=$rtime;}return$str;}其它的参考使用date将当时间戳与指定时间戳转换成系统时间(1)打印明天此时的时间戳strtotime(”+1day“)当前时间:echodate(”Y-m-dH:i:s”,time())结果:2022-01-2209:40:25指定时间:echodate(”Y-m-dH:i:s”,strtotime(”+1day”))结果:2022-01-2309:40:25(2)打印昨天此时的PHP时间戳strtotime(”-1day“)当前时间:echodate(”Y-m-dH:i:s”,time())结果:2022-01-2209:40:25指定时间:echodate(”Y-m-dH:i:s”,strtotime(”-1day”))结果:2022-01-2109:40:25(3)打印下个星期此时的时间戳strtotime(”+1week“)当前时间:echodate(”Y-m-dH:i:s”,time())结果:2022-01-2209:40:25指定时间:echodate(”Y-m-dH:i:s”,strtotime(”+1week”))结果:2022-01-2909:40:25(4)打印上个星期此时的时间戳strtotime(”-1week“)当前时间:echodate(”Y-m-dH:i:s”,time())结果:2022-01-2209:40:25指定时间:echodate(”Y-m-dH:i:s”,strtotime(”-1week”))结果:2022-01-1509:40:25(5)打印指定下星期几的PHP时间戳strtotime(”nextThursday“)当前时间:echodate(”Y-m-dH:i:s”,time())结果:2022-01-2209:40:25指定时间:echodate(”Y-m-dH:i:s”,strtotime(”nextThursday”))结果:2022-01-2900:00:00(6)打印指定上星期几的时间戳strtotime(”lastThursday“)当前时间:echodate(”Y-m-dH:i:s”,time())结果:2022-01-2209:40:25指定时间:echodate(”Y-m-dH:i:s”,strtotime(”lastThursday”))结果:2022-01-1500:00:00更多PHP相关技术文章,请访问PHP代码栏目进行学习!

    • PHP代码
    • 160阅读
    • 2022-09-21

  • PHP获取访问页面HTTP状态码的实现代码
    PHP获取访问页面HTTP状态码的实现代码

    方法一$header_info=get_headers('//www.zhansanjie.com/');echo$header_info[0];//耗时0.67~0.78方法二$ch=curl_init('//www.zhansanjie.com/');curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);curl_exec($ch);$httpcode=curl_getinfo($ch,CURLINFO_HTTP_CODE);//200curl_close($ch);echo$httpcode;//耗时0.84~0.94方法三给curl设置一些参数,可以加快速度,代码来自网络$curl=curl_init();$url='//www.zhansanjie.com/';curl_setopt($curl,CURLOPT_URL,$url);//设置URLcurl_setopt($curl,CURLOPT_HEADER,1);//获取Headercurl_setopt($curl,CURLOPT_NOBODY,true);//Body就不要了吧,我们只是需要Headcurl_setopt($curl,CURLOPT_RETURNTRANSFER,1);//数据存到成字符串吧,别给我直接输出到屏幕了curl_exec($curl);//开始执行啦~$httpcode=curl_getinfo($curl,CURLINFO_HTTP_CODE);//我知道HTTPSTAT码哦~curl_close($curl);//用完记得关掉他echo$httpcode;//耗时0.45~0.53代码四核心代码:/***获取远程URL的HTTP状态**@version0.0.1*@AuthorChenjl**@paramstring$url远程URL*@paramstring$datature[返回HTTP状态数组]|false[返回状态数值]**@returnmixed*/functiongetHeaders($url,$data=FALSE){$_headers=get_headers($url,1);if(!$data){return$_headers;}$curl=curl_init();curl_setopt($curl,CURLOPT_URL,$url);//获取内容urlcurl_setopt($curl,CURLOPT_HEADER,1);//获取http头信息curl_setopt($curl,CURLOPT_NOBODY,1);//不返回html的body信息curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);//返回数据流,不直接输出curl_setopt($curl,CURLOPT_TIMEOUT,30);//超时时长,单位秒curl_exec($curl);$rtn=curl_getinfo($curl,CURLINFO_HTTP_CODE);curl_close($curl);return$rtn;}上面的代码,逐风已将两种获取方式进行一个整合,方便不同获取HTTP状态情景的需求;返回结果:#调用案例1:getHeaders('//www.zhansanjie.com\/\',true);#返回结果:200//直接返回HTTP状态码#调用案例2:getHeaders('//www.zhansanjie.com/',false);#返回结果:/*array(10){[0]=>string(15)"HTTP/1.1200OK"["Server"]=>string(5)"nginx"["Date"]=>string(29)"Mon,04Jul201606:21:35GMT"["Content-Type"]=>string(9)"text/html"["Content-Length"]=>string(5)"26898"["Last-Modified"]=>string(29)"Mon,04Jul201606:16:00GMT"["Connection"]=>string(5)"close"["Vary"]=>string(15)"Accept-Encoding"["ETag"]=>string(15)""5779ff20-6912""["Accept-Ranges"]=>string(5)"bytes"}*/基本上就这些了,大家可以适当补充

    • PHP代码
    • 266阅读
    • 2022-09-16

  • PHP字符串分割相关函数
    PHP字符串分割相关函数

    【1】chunk_split—将字符串分割成小块【2】str_split—将字符串转换为数组【3】explode—使用一个字符串分割另一个字符串,返回新的数组【4】implode(join)—将一个一维数组的值转化为字符串【5】strtok—标记分割字符串【1】chunk_split—将字符串分割成小块作用:使用此函数将字符串分割成小块非常有用。该函数不改变原始字符串。函数:chunk_split(string$body[,int$chunklen,string$end]):string参数:$body要分割的字符串$chunklen分割尺寸默认76$end行尾序列符号默认\r\n返回值:返回分割后的字符。$str='HelloTacks!';echo$str,'<br/>';echochunk_split($str,12,'...'),'<br/>';#HelloTacks!...#按照尺寸分割字符串,并且追加每个分割后结尾字符【2】str_split—将字符串转换为数组作用:按照等尺寸将字符串转换为数组函数:str_split(string$string[,int$split_length=1]):array参数:$string字符串$split_length每一段的长度,默认为1返回值:返回字符串,其中split_length如果小于1则会返回False,如果超过字符串长度,就按照字符串长度当成数组的一个元素。$str="123456789";$arr=str_split($str);#一个字符当作数组的一个单元var_dump($arr);$arr=str_split($str,3);#每三个字符当作数组的一个单元var_dump($arr);$arr=str_split($str,99);#整个字符串当作数组的一个单元var_dump($arr);$arr=str_split($str,0);var_dump($arr);#返回FALSE并警告【3】explode—使用一个字符串分割另一个字符串,返回新的数组作用:使用一个字符串分割另一个字符串。每个元素都是string的一个子串它们被字符串$delimiter作为边界点分割出来函数:explode(string$delimiter,string$string[,int$limit]):array参数:$delimiter边界上的分隔字符。$string输入要进行分割的字符串。$limit如果设置limit参数并且是正数,则返回的数组包含最多limit个元素,而且最后哪个元素将包含string的剩余部分。如果limit参数是负数,则返回最后的-limit个元素外的所有元素。如果limit是0,则会当作1返回值:此函数返回由字符串组成的array,每个元素都是string的一个子串,它们被字符串delimiter作为边界点分割出来。备注:如果$delimiter为空字符串(""),explode()将返回FALSE。如果$delimiter所包含的值在string中找不到,并且使用了负数的limit。那么会返回空的array,否则返回包含string单个元素的数组。//使用一个字符串打散成数组$str='tacks1tacks2tacks3tacks4tacks5';var_dump(explode('',$str));//booleanfalse//空的$delimiter会返回False并且报错。var_dump(explode('',$str));//按照空格分开每个子串成为数组。var_dump(explode('',$str,3));//数组元素为3个,前连两个按照指定的字符分割,剩下的全部挡在组后一个数组元素var_dump(explode('',$str,-1));//在分割后的数组,删除最后一个元素tacks5var_dump(explode('AAA',$str,0));//如果字符串中没有$delimiter,那么会全部当成数组的一个单元/*booleanfalsearray(size=5)0=>string'tacks1'(length=6)1=>string'tacks2'(length=6)2=>string'tacks3'(length=6)3=>string'tacks4'(length=6)4=>string'tacks5'(length=6)array(size=3)0=>string'tacks1'(length=6)1=>string'tacks2'(length=6)2=>string'tacks3tacks4tacks5'(length=20)array(size=4)0=>string'tacks1'(length=6)1=>string'tacks2'(length=6)2=>string'tacks3'(length=6)3=>string'tacks4'(length=6)array(size=1)0=>string'tacks1tacks2tacks3tacks4tacks5'(length=34)*/【4】implode(join)—将一个一维数组的值转化为字符串与上面explode()函数正好相反。作用:将一个一维数组的值按照特定的字符串$glue转化为字符串。函数:implode(string$glue,array$pieces):stringjoin(string$glue,array$pieces):string(join是implode的别名)implode(array$pieces):string(最好不用)参数:$glue默认为空的字符串作为粘合数组每个元素$pieces你想要转化的数组返回值:返回一个字符串,其内容为由glue分割开的数组的值。备注:因为历史原因,implode()可以接收两种参数顺序,也就是第一个参数$glue也可以不写。但是最好还是些两个参数向后兼容。而且第二个参数必须是一维数组。$arr=['tacks1','tacks2','tacks3','tacks4','tacks5'];echoimplode(',',$arr),'<br/>';//tacks1,tacks2,tacks3,tacks4,tacks5echoimplode($arr),'<br/>';//tacks1tacks2tacks3tacks4tacks5echojoin('-',$arr),'<br/>';//tacks1-tacks2-tacks3-tacks4-tacks5【5】strtok—标记分割字符串作用:strtok()将字符串str分割为若干子字符串,每个子字符串以token中的字符分割。函数:strtok(string$str,string$token):stringstrtok(string$token):string参数:$str被分成若干子字符串的原始字符串。$token分界字符,可以使用多个字符,字符串将被该参数中任何一个字符分割。返回值:标记后的字符串。备注:仅第一次调用strtok函数时使用string参数。后来每次调用strtok,都将只使用token参数,因为它会记住它在字符串string中的位置。如果要重新开始分割一个新的字符串,你需要再次使用string来调用strtok函数,以便完成初始化工作。$string="TACKSTackstacks";$tok=strtok($string,"");#使用空格来分割字符串echo$tok,'<br/>';//第一个字串$tok=strtok("");//-------向后移动echo$tok,'<br/>';//第二个字串$tok=strtok("");//-------向后移动echo$tok,'<br/>';//第三个字串//当然我们可以用循环来解决$tok=strtok($string,"");#使用空格来分割字符串while($tok!=false){#使用循环来解决echo'str=',$tok,'<br/>';$tok=strtok("");//移动下一个分割位置}【小结】chunk_split($body,$chunklen,$end)按照长度$chunklen分割字符串$body,然后再每个子串后面加上指定$end结束字符,然后返回整个字符串。str_split($string,$split_length)把$string字符串按照$split_length长度分割成子串组成数组。explode($delimiter,$string,$limit)把$string字符串按照$delimiter分界点分割成子串然后组成指定$limit元素个数的数组。implode($glue,$pieces)把$pieces一维数组按照特定的$glue连接符连接每两个字符,最后合并成一个字符串。strtok($str,$token)把$str字符串按照$token分界符,进行依次分割成每个字符串。

    • PHP代码
    • 54阅读
    • 2022-09-15

  • php压缩gif和png图透明背景变成黑色的解决方法
    php压缩gif和png图透明背景变成黑色的解决方法

    工作中需要缩放一些gif图然后在去Imagecopymerge,可是发现使用了imagecreatetruecolor和imagecopyresampled后发现背景图不对,本来透明的背景图变成了黑色,后来发现做一些修改才可以:$img=imagecreatetruecolor(200,200);//2.上色$color=imagecolorallocate($img,255,255,255);//3.设置透明imagecolortransparent($img,$color);imagefill($img,0,0,$color);

    • PHP代码
    • 132阅读
    • 2022-09-13

站三界导航
本站声明:本站严格遵守国家相关法律规定,非正规网站一概不予收录。本站所有资料取之于互联网,任何公司或个人参考使用本资料请自辨真伪、后果自负,站三界导航不承担任何责任。在此特别感谢您对站三界导航的支持与厚爱。