多数大学生出来选择的工作和专业无关
首页 > 专业知识

PHP编程中“字符串”的小常识

时间:2018-08-01 20:47:21 [来源]:郑州PHP培训学校

   PHP编程中“字符串”的小常识

  字符串
  注意单引号和双引号的区别
  注意转义字符\的使用\\,\",\$
  注意使用8进制或16进制字符表示 \xf6
  echo "H\xf6me";//需要察看是否支持此类文字编码---------------------输出结果----------------------------------------H鰉e
  ---------------------------------------------------------------------1.使用printf()和sprintf()创建格式化的输出printf()直接输出到输出缓冲区
  sprintf()的输出作为字符串返回
  如printf("输出内容 %.2f\n",$PI());
  所有的转换规范都以%开头
  数据类型有d-整数,s-字符串,f-浮点数,b-二进制.2是一个可选的宽度指标,小数点右边输出使用0填充printf("%.2f",3.14159);
  printf("%10.2f",3.14159);
  printf("%.10f",3.14159);
  printf("%.9s",abcdefghijklmn);
  printf("%5.2f,%f,%7.3f\m",3.14159,3.14159,3.14159);printf("%b %d %f %s \n",123,123,123,"test");---------------------输出结果----------------------------------------3.14 3.143.1415900000abcdefghi 3.14,3.141590, 3.142\m1111011 123 123.000000 test---------------------------------------------------------------------2.字符串填充
  string str_pad(string input原始字串, int length添加后的总长度[, string padding要填充的字符 [, int pad_type]填充类型])填充类型有添加在左边STR_PAD_LEFT,默认添在右边,填充在两端STR_PAD_BOTH$index = array("one"=>1,"two"=>155,"three"=>1679);echo "
  ";
  echo str_pad("这是标题",50," ",STR_PAD_BOTH)."\n";foreach($index as $inkey=>$inval)
  echo str_pad($inkey,30,".").str_pad($inval,20,".",STR_PAD_LEFT)."\n";echo "
  ";
  ---------------------输出结果----------------------------------------这是标题
  one..............................................1two............................................155three.........................................1679---------------------------------------------------------------------string strtolower(string subject)//转换为小写string strtoupper(string subject)//转换为大写string ucfirst(string subject)//首字母大写string ucwords(string subject)//每个单词首字母大写string ltrim(string subject)//去左空白
  string rtrim(string subject)//去右空白
  string trim(string subject)去左右空白,空白包括null,制表符,换行符,回车符和空格string n12br(string source)//将\n表示的换行符转换为标记
  3.字符串比较
  integer strcmp(sting str1,string str2) //str1大于str2返回-1 str1小于str2返回1 str1和str2相等返回0integer strmcmp(sting str1,string str2,integer length) //第三个参数限制length个字符的比较print strcmp("aardvark","aardwolf");
  print strncmp("aardvark","aardwolf",4);
  ---------------------输出结果-----------------------------------------10
  ---------------------------------------------------------------------strcasecmp()和strncasecmp()是不区分大小写的比较函数4.查找和抽取子字符串
  string substr(sting source,integer start[,integer length])//从start开始取length个字符start和length可以使用负值
  $var = "abcdefgh";
  print substr($var,2);//从0开始计数
  print substr($var,2,3);
  print substr($var,-1);//从字符串的末尾开始print substr($var,-5,2);
  print substr($var,-5,-2);
  ---------------------输出结果----------------------------------------cdefgh
  cde
  h
  de
  def
  ---------------------------------------------------------------------integer strpos(string haystack,string needle[,integer offset])//查找子字符串的位置,返回第一次出现.
  integer strrpos(string haystack,string needle)//只搜索单个字符(多个字符只取第一个),返回最后一次出现的索引.
  还有常见的从 字符串中抽取找到的部分 的函数string strstr(string haystack,string needle)//不区分大小写string stristr(string haystack,string needle)//区分大小写string strrchr(string haystack,sting needle)*********** array explode(string separator,string subject[,integer limit])//返回一个字符串数组array implode(string glue,array pieces)
  PHP编程中“数组”的基础知识
  关于数组:
  PHP中的数组是复杂的,并且比许多其他高级语言中的数组更灵活。
  数组array是一组有序的变量,其中每个变量被叫做一个元素。
  数组可以被编号或者相关联,也就是数组的元素可以分别根据数字索引或文本化字符串来访问PHP中,数组可以包含标量(整数,布尔,字符串,浮点数)或复合值(对象甚至其他数组),并且可以包含不同类型的值1。创建数组
  PHP提供创建数组的array()语言结构
  $numbers = array(5,4,3,2,1);
  $words = array("web","database","application");echo $numbers[2];
  echo $words[0];
  ---------------------输出结果----------------------------------------3web
  ---------------------------------------------------------------------默认情况下,数组的第一个元素的索引为0。数组中包含的值可以通过使用方括号[]语法来检索和修改$numbers[5] = 0;
  数字化索引的数组可以创建位从任何索引值开始$numbers = array(1=>"one","two","three","four");也可以松散的索引
  $numbers = array(1=>"one",3=>"three",5=>"zero");可以通过给变量赋予一个没有参数的array()来创建空数组。然后可以通过使用方括号[]语法来添加值$error = array();
  $error[] = "no error!!!";
  $error[] = "second error!!!";
  echo $error[0];
  echo $error[1];
  ---------------------输出结果----------------------------------------no error!!!second error!!!
  ---------------------------------------------------------------------2.关联数组
  关联数组(associative array)使用字符串索引(或键)来访问存储在数组中的值关联索引的数组对于数据库层交互非常有用
  $newarray = array("first"=>1,"second"=>2,"third"=>3);echo $newarray["second"];
  $newarray["third"]=5;
  echo $newarray["third"];
  ---------------------输出结果----------------------------------------25
  ---------------------------------------------------------------------3.异构数组
  PHP数组可以包含不同种类的值
  $mixedBag = array("cat",42,8.5,false);
  var_dump(mixedBag);
  4.多维数组
  创建包含数组的数组,数组维数没有限制,但是一般很难想象一个多于三维的数组的用法$planets = array(array("MM",1,2),array("NN",3,4),array("BB",5,6),array("VV",7,8));print $planets[2][0];
  $planets2 = array("MM"=>array("AA"=>1,"SS"=>2),"NN"=>array("DD"=>3,"FF"=>4),
  "BB"=>array("GG"=>6,"HH"=>7,"PP"=>array("haha!!!!")),"VV"=>array("JJ"=>6,"KK"=>7,"LL"=>array("one","two")));print $planets2["VV"]["LL"][0];
  ---------------------输出结果----------------------------------------BBone
  ---------------------------------------------------------------------PHP对文本数据库的五大基本操作方法
  PHP实现对文本数据库的数据显示、加入、修改、删除、查询五大基本操作的方法我用一个留言本程序作为例子,阐述PHP实现对文本数据库的数据显示、加入、修改、删除、查询五大基本操作的方法。
  此文本数据库共有字段10个:客户IP、发言时间、客户名、客户EMAIL、客户主页地址、留言表情图片名、客户QQ、客户形象图片、留言内容、管理员回复内容。
  1、加入数据程序段。
  $date=date("Y-m-d H:i:s");//取得系统时间
  $ip = $HTTP_SERVER_VARS[REMOTE_ADDR]; //取得发言的IP地址$text=encode($gb_text);//去掉留言内容后面的空格.
  $fp=fopen("gb.dat","a");//以只写模式打开gb.dat文本文件,文件指针指向文件尾部.
  $str=$ip."|".$date."|".$gb_name."|".$gb_email."|".$gb_home."|".$face."|".$gb_qq."|".$head."|".$text."|".$reply."\n";//将所有留言的数据赋予变量$str,"|"的目的是用来今后作数据分割时的数据间隔符号。
  fwrite($fp,$str);//将数据写入文件
  fclose($fp);//关闭文件
  showmessage("留言成功!","index.php","3");//留言成功,3秒后自动返回主界面。
  其中的$gb_name 、$gb_email、$gb_home、$face、$gb_qq、$head、$gb_text、$reply是由发言表单传过来的数据。
  2、数据显示程序段
  if (file_exists("gb.dat")){//检测文件是否存在$array=file("gb.dat");//将文件全部内容读入到数组$array$arr=array_reverse($array);//将$array里的数据安行翻转排列(即最后一行当第一行,依此类推)读入数组$arr的每一个单元($arr[0]...)。
  $num=count($array);//获取数组$array里的信息数(一行为一条信息)if ($num>0){//如果信息数大于零(即文本数据库不为空)$total=ceil($num/$pagesize);//计算总页数(取最大整数,即凡有小数点都进一取整,$pagesize为预设的每页显示的信息数)if($page<1){//如果当前页面数码号小于1
  $page=1;//则赋值为1
  }
  $number=($page-1)*$pagesize;//计算当前所显示第一个留言的数码号(数码号从零开始,主要是达到与数组单元号对应的目的)for($i=0;$i<=$pagesize-1;$i++){//进入循环$row=explode("|",$arr[$number]);//以"|"作为分割符,分割数组$arr中每第$number个单元的数据,并将这些数据赋予数组$romlist($ip,$datetime,$name,$email,$home,$face,$qq,$head,$text,$reply)=$row;//将数组$row里的单元数据按顺序赋予括号里的变量?>
  昵称【】
  //显示客户名
  发表于://显示留言发表时间
  " target="_blank">访问的主页//客户主页的超连接给发信//客户E-MAIL的连接
  的QQ号码是//显示客户的QQ号码
  的IP地址为" //显示客户的IP地址
  回复//留言回复的连接语句
  删除//留言删除的语句(以客户留言时间$datetime作为删除标识)if ($number == $num-1)//如果数组的单元号等于总留言数减一(因为单元号以零开始的,所以这意味着这是最后一条留言){
  break;//跳出循环
  }
  $number = $number + 1; //数组单元号加1
  }//循环结束符
  }
  if ($page <> 1)//如果当前页面数码号不等于1{
  $back = $page - 1;//当前页面数码号减1,并将此值赋予变量$backecho "第一页";//显示第一页的连接
  echo " 上一页" ;当前页面数码号等于$back,并显示其连接}
  if ($page <> $total)//如果当前页面数码号不等于总页数号(最后一页数码号){
  $next = $page + 1;//当前页面数码号加1并赋予变量$nextecho " 下一页" ;//显示下一页连接
  echo " 最后一页"; 显示最后一页连接
  }
 

上一篇:PHP网站程序乱码问题解决方法

下一篇:PHP常见错误的具体纠正方法