其中包括php基础、字符串和正则表达式的学习。具体如下:

 <html xmlns=http://www.w3.org/1999/xhtml>
<head>
<meta http-equiv=Content-Type content="text/html;charset=utf-8">
</head>
<body>
<h1>
<?php
/**
* php输出语句:echo
* 可以同时输出多个字符串,可以多个参数,并不需要圆括号,无返回值。
* void echo ( string arg1 [, string ...] ) //返回值为空
*/
echo "my first php demo!"; //echo输出
echo "<br/>";
echo 'my',' first',' php',' demo','!<br>'; /**
* php输出函数print
* print() 和 echo() 用法一样,但是echo速度会比print快一点点。
* 实际上它也不是一个函数,因此您无需对其使用括号。不过,如果您希望向print() 传递一个以上的参数,那么使用括号会发生解析错误。
*/
print "hello<br>";
print ("hello<br>");
//print 'a','b','c'; ERROR这个是错误的
?>
</h1>
<h2>
<?php
$temp1="tem1"; //值赋值
$temp2="tem2";
$temp2=&$temp1; //引用赋值
$temp1="woshi1";
$temp2="woshi2";
/**
* php中的换行
* ①\n只是源代码下的换行,而不是显示的效果,\n是在HTML源代码下可以看到换行;
* ②PHP与C语言不同,PHP处理后给的对象是客户端的浏览器,而浏览器的换行是<br>标记;
* ④\n是输出到文本文件时用到的换行,而要在浏览器中显示换行要用<br>或别的HTML标记;
*/
echo $temp2."<br/>"; //php总换行可以用这种方式
echo "huanghang\n"; //浏览器显示端并不换行 /**
* 超级全局变量:$GLOBALS,$_SERVER,$_SESSION,$_COOKIE,$_POST,$_GET,$_REQUEST
*/
echo $GLOBALS."<br/>";
echo $_SERVER."<br/>";
echo $_COOKIE."<br/>"; /**
* 常量,php使用函数define来定义函数:boolean define(string name,mixed value[,bool case_insensitive]),返回值为1
*/
$res=define("PI",3.141592);
echo $res."<br>";
$Pi2=PI*2;
echo $Pi2."<br/>";
printf("pi * 2 = %f",$Pi2);
echo "<br>"; /**
* php中的双引号与单引号
* ①PHP允许我们在双引号串中直接包含字串变量
* ②单引号串和双引号串在PHP中的处理是不相同的。双引号串中的内容可以被解释而且替换,而单引号串中的内容总被认为是普通字符。
*/
$color = "red";
echo "Roses are $color"."<br>"; //双引号里的$color代表变量
echo 'Roses are $color'."<br>"; //单引号里的$color代表字符串
$s = "I am a 'single quote string' inside a double quote string"."<br>";
echo $s;//双引号里嵌套单引号
$s1 = 'I am a double quote string" inside a single quote string'."<br>";
echo $s1;//单引号里嵌套双引号
//$s2 = "I am a "double quote string" inside a single quote string";——————ERROR双引号里不能嵌套双引号
//$s2 = 'I am a 'double quote string' inside a single quote string';——————ERROR单引号里不能嵌套单引号
$s3="I am a \"double quote string\" inside a single quote string"."<br>";
echo $s3;//如果在这个串中想要表示出双引号,则可以使用转义符"\"(反斜线)
$s3='I am a \'double quote string\' inside a single quote string'."<br>";
echo $s3;//如果在这个串中想要表示出单引号,则可以使用转义符"\"(反斜线) /**
* 字符串和整型相加时,字符串会转换为整型。
*/
$a='5';
echo $a+5; /**
* 定界符
* 是另一种给字符串定界的方法使用定界符语法(“<<<”)。应该在 <<< 之后提供一个标识符,然后是字符串,然后是同样的标识符结束字符串。
* 注意:定界符的结尾一定要单独一行,而且要顶格写,前面不可以有空格。如下所示: $str="定界符的用法";
echo <<<mark
用定界符输出字符串\$str=$str<br>\n
一个反斜线\\ &nbsp;&nbsp;&nbsp;&nbsp;一个双引号\"
mark;
//为了展示定界符的便利,下面我们输出一个包含了javascript的代码:
$name = 'kitty';
echo <<<Eof
<table height="20">
<tr>
<td>
{$name}<br/>
<script>
var p='hello world';
document.writeln(p);
</script>
</td>
</tr>
</table>
Eof;
*/ /*
* php中substr
* 语法string substr ( string $string , int $start [, int $length ] )
* ①string为字符串,start为开始位置,length为截取长度;
* ②位置从0开始,当start为正数时从右向左截取;为负数时
*/
$rest1 = substr("abcdef", 0, 0); // returns ""
$rest2 = substr("abcdef", 0, 2); // returns "ab"
$rest3 = substr("abcdef", 0, -1); // returns "abcde"
$rest4 = substr("abcdef", 2,0); // returns ""
$rest5 = substr("abcdef", 2,2); // returns "cd"
$rest6 = substr("abcdef", 2, -1); // returns "cde"
$rest7 = substr("abcdef", -2,0); // returns ""
$rest8 = substr("abcdef", -2,2); // returns "ef"
$rest9 = substr("abcdef", -2,-1); // returns "e"
echo $rest1,",",$rest2,",",$rest3,",",$rest4,",",$rest5,",",$rest6,",",$rest7,",",$rest8,",",$rest9,"<br>";
echo ">";
echo substr("hello shopNC",-7,-3)."<br>"; /**
* php中的字符串拼接 "."
*/
$string1="hello ";
$string2="world!";
echo $string1.$string2."<br>";
echo "{$string1}{$string2}"."<br>";//注意这里只能有双引号
$string1.=$string2;
echo $string1."<br>"; /*
* printf()函数和sprintf()函数
* int printf(string $format[,mixed $arg1 [,mixed $arg2...])
* string sprintf(string $format[,mixed $arg1 [,mixed $arg2...])
* 其中format为制定要显示的字符串格式
* ①它们都可以对字符串执行格式化操作;
* ②printf可以将格式化后的字符串直接显示;
* ③sprintf则需要使用echo才可以将格式化后的字符串输出;
* %b二进制、%c以ASCII形式输出、%d整型,以有符号的形式输出
* %u整型,以无符号的形式输出、%o八进制、%x十六进制,字母部分为小写
* %X十六进制,字母部分为大写、%f浮点型、%s字符串
*/
$string="%b,%c,%d,%u,%o,%x,%X,%f,%s";
printf($string,33,33,-33,33,-33,33,-33,33,-33);
echo "<br/>\n";
echo sprintf($string,33,33,-33,33,-33,-33,-33,33,-33)."<br>"; /*
* nl2br()函数
* 该函数可以将字符串中的\n解释为HTML中的<br/>
*/
$string="hello world1!\nhello world2!";
echo nl2br($string)."<br>"; /*
* wordwrap()函数
* 可以让字符串在指定的位置强制换行,语法格式如下:
* string wordwrap(string $str [,int $width [, string $break [, bool $cut]]])
* str为要换行的字符串;width制定最大行宽度,默认为75;break制定作为分隔符的字符,默认为\n
* cut指定是否对大于指定宽度的单词进行换行,默认为false
*/
$string=" welcometoChina!";
echo ">";
echo wordwrap($string,8,"<br>",true); /*
* 修改字母大小写
* string strtolower(string $str)所有字母转成小写
* string strtoupper(string $str)所有字母转成大写
* string ucwords(string $str)所有首字母转为大写
*/
$string="welcome to China!";
echo "<br>".strtolower($string);
echo "<br>".strtoupper($string);
echo "<br>".ucwords($string); /*
* 计算字符串的长度strlen()函数
*/
$string="welcome to China!";
echo "<br>".$string."的长度是:".strlen($string); /*
* substr_count()函数来计算制定的字符串在某个字符串中出现的次数,语法格式为:
* int substr_count(string $haystack,string $needle [, int $offset [, int $lengh]])
*/
$string="welcome to China!welcome to Chinaaaa!";
$count=substr_count($string,"China");
echo "<br/>"."China在".$string."中出现的次数为:".$count; /*
* mixed str_word_count(string $string [, int $format [, string $charlist]])
* 返回字符串中单词的使用情况
* string为要检查的字符串,format指定返回模式,charlist规定被认定为单词的特殊字符
* 返回模式有三种:
* 0 默认值,返回找到的单词数目;
* 1 返回一个数组,其中,键名是以0开始的连续整数,值为实际单词
* 2 返回一个数组,其中,键名是单词在字符串中的首字母位置,值为实际单词
*/
$string="welcome to China!! , welcome to Chinaaaa!!!";
$count=str_word_count($string);
echo "<br>"."字符串".$string."中共有".$count."个单词"."<br/>";
print_r(str_word_count($string,1));
echo "<br/>";
print_r(str_word_count($string,2));
echo "<br/>";
print_r(str_word_count($string,2,"!"));
echo "<br/>";
print_r(str_word_count($string,2,",")); /*
* 字符串查找函数strstr()
* 该函数用来查找指定字符串在某字符串中的位置,该函数返回的结果为字符串第一次出现后的所有内容
* string strstr(string $str,mixed $needle,bool $before_needle);
* str为输入的字符串;needle要查找的字符串
* before_needel默认值为false;若为true,则返回needle在haystack中的位置之前的部分
* ①该函数区分大小写。如果想要不区分大小写,请使用 stristr()。
* ②如果你仅仅想确定 needle 是否存在于 str 中,请使用速度更快、耗费内存更少的 strpos()函数。
*/
$email = 'name@example.com';
$domain = strstr($email, '@');
echo "<br/>".$domain."<br/>"; // 打印 @example.com
$user = strstr($email, '@', true); // 从 PHP 5.3.0 起
echo $user."<br/>"; // 打印 name /*
* strpos()函数用来查找指定字符串在被检查的字符串中第一次出现的位置
* string strpos(string $haystack,string $needle,in [ offset])
* ①strpos()也有与之对应的对大小写不敏感的函数stripos()
*/
$email = 'name@example.com';
echo strpos($email,"@",2)."<br/>";//4
//上例中如果偏移量为5,则输出空 /*
* str_repeat()函数
* string str_repeat ( string $input , int $multiplier )
* 返回input重复multiplier次数的结果
*/
echo str_repeat("hello world!",3)."<br/>";//hello world!hello world!hello world! /*
* 字符串替换函数substr_replace()
* mixed substr_replace ( mixed $string , mixed $replacement , mixed $start [, mixed $length ] )
* string指定要检查的字符串;replacement指定要插入的字符串;start指定在字符串中开始替换的位置;
* length指定要替换的字符数,对length的几点解释:
* ①length如果不指定,默认长度为strlen($string);
* ②length为0,将replacement 插入到 string 的 start 位置处。
* ③length为正值,表示 string 中被替换的子字符串的长度
* ④length为负值,表示从字符串尾部开始到第|length|个字符停止替换
*/
$string="hello world!";
echo substr_replace($string,"China",6)."<br/>";//hello China
echo substr_replace($string,"China",6,0)."<br/>";//hello Chinaworld!
echo substr_replace($string,"China",6,2)."<br/>";//hello Chinarld!
echo substr_replace($string,"China",6,-2)."<br/>";//hello Chinad! /*
* 字符串比较:
* ① "=="可以用来比较两个字符串是否相等;
* ② srcmp()用来比较两个字符串的大小(区分大小写)
* ② srcmp()用来比较两个字符串的大小(区分大小写)
int strcmp(string $str1,string $str2);
返回值为整数,返回负数则表示str1小于str2,返回正数则表示str1大于str2,返回0则表示两者相等
该函数区别大小写
* ③ strcasecmp()二进制安全比较字符串(不区分大小写)
strcasecmp()与strcmp()函数基本相同,只是strcasecamp()函数不区分大小写
int strcasecmp ( string $str1 , string $str2 )
* ④ strnetcmp()是将字符串按自然排序法进行比较
int strnatcmp ( string $str1 , string $str2 )
该函数实现了以人类习惯对数字型字符串进行排序的比较算法,这就是“自然顺序”。注意该比较区分大小写。
*/
$str1="hello aorld!";
$str2="hello China!";
echo strcmp($str1,$str2)."<br/>";//
echo strcasecmp($str1,$str2)."<br/>";//-2
//strnetcmp()用法
$arr1 = $arr2 = array("img12.png", "img10.png", "img2.png", "img1.png");
echo "Standard string comparison\n";
usort($arr1, "strcmp");
print_r($arr1);
echo "<br>\nNatural order string comparison\n";
usort($arr2, "strnatcmp");
print_r($arr2); /*
* 正则表达式
* ?与{0,1}等价;*与{0,}等价;+与{1,}等价
*/ /*
* 使用正则表达式查找字符串 ,使用函数preg_match
* 还有已经被废弃的两个函数是erge()和eregi(),它们完全相同只是eregi不区分大小写。
* int preg_match ( string $pattern , string $subject [, array &$matches [, int $flags = 0 [, int $offset = 0 ]]] )
* ① pattern为要搜索的模式;subject为字符串;
* ② 如果提供了参数matches,它将被填充为搜索结果:$matches[0]将包含完整的模式匹配到的文本,matches[1]将包含第一个捕获子组匹配到的文本,以此类推;
* ③ flags可以被设置一下标记值:PREG_OFFSET_CAPTURE,如果传递了这个标记,对于每一个出现的匹配返回时会附加字符串偏移量(相对于目标字符串的)。
* 注意:这会改变填充到matches参数的数组,使其每个元素成为一个由第0个元素是匹配到的字符串,第一个元素是该匹配字符串在目标字符串subject中的偏移量。
* ④ 可选参数offset用于指定从目标字符串的某个位置开始搜索。
*/
//
$subject = "abcdef";
$pattern = '/^def/';
preg_match($pattern, $subject, $matches, PREG_OFFSET_CAPTURE, 3);
echo "<br/>";
print_r($matches);//Array()
//2
$subject = "abcdef";
$pattern = '/^def/';
echo "<br/>".substr($subject,3)."<br/>";//Array()
preg_match($pattern, substr($subject,3), $matches, PREG_OFFSET_CAPTURE);
print_r($matches);//输出结果Array ( [0] => Array ( [0] => def [1] => 0 ) )
//检查电子邮件
$email="_.-~kifeandfork_@164.com";
echo "<br/>";
if(preg_match("/^[_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,3}$/",$email)){
echo "your email's format is right!";
}else{
echo "your email's format is wrong!";
} /*
* 字符串分割函数:正则表达式函数preg_split()
* array preg_split ( string $pattern , string $subject [, int $limit = -1 [, int $flags = 0 ]] )
* pattern用于搜索的模式;subject输入的字符串;
* ① limit 如果指定,将限制分割得到的字串最多只有limit个,返回的最优一个字串将包含所有的剩余部分。
limit的值为-1,0,null时都代表不限制。
* ② flags 可以去如下值:
PREG_SPLIT_NO_EMPTY,此时函数将会返回分割后的非空部分;
PREG_SPLIT_DELIM_CAPTURE,此时用分割的模式中的括号表达式将被捕获并返回;
PREG_SPLIT_OFFSET_CAPTURE ,此时对于每一个出现的匹配返回时将会附加字符串偏移量
*/
//1 使用逗号或空格(包含" ", \r, \t, \n, \f)分隔短语
$keywords = preg_split("/[\s,]+/", "hypertext language, programming");
echo "<br/>";
print_r($keywords);//输出Array ( [0] => hypertext [1] => language [2] => programming )
//2 将一个字符串分隔为组成它的字符
$str = 'string';
$chars = preg_split('//', $str, -1, PREG_SPLIT_NO_EMPTY);
echo "<br/>";
print_r($chars);
//3 分隔一个字符串并获取每部分的偏移量
$str = 'hypertext language programming';
$chars = preg_split('/ /', $str, -1, PREG_SPLIT_OFFSET_CAPTURE);
echo "<br/>";
print_r($chars); /*
* 字符串分割函数:
* 如果你不需要正则表达式功能,可以有更快(并且更简单)的选择比如 explode() 或 str_split()。
* ① array explode ( string $delimiter , string $string [, int $limit ] )
* delimiter为边界上的分割字符;string为输入的字符串;
如果设置了limit参数并且是整数,则返回的数组包含最多limit个元素,而最后那个元素将包含string的剩余部分;
如果limit为负数,则返回除了最后的-limit个元素外的所有元素
如果limit为0,则会被当做1
* ② array str_split ( string $string [, int $split_length = 1 ] )
*/
//1 函数explode()
$str = 'one|two|three|four';
echo "<br/>";
print_r(explode('|', $str, 2));//返回Array ( [0] => one [1] => two|three|four )
echo "<br/>";
print_r(explode('|', $str, -1));//返回Array ( [0] => one [1] => two [2] => three )
echo "<br/>";
print_r(explode('|', $str, 0));//Array ( [0] => one|two|three|four )
//2 函数str_split()
$str = "Hello Friend";
$arr1 = str_split($str);
$arr2 = str_split($str, 3);
echo "<br/>";
print_r($arr1);
echo "<br/>";
print_r($arr2);
?>
</h2>
</body>
</html>

【php】基础学习1的更多相关文章

  1. salesforce 零基础学习(五十二)Trigger使用篇(二)

    第十七篇的Trigger用法为通过Handler方式实现Trigger的封装,此种好处是一个Handler对应一个sObject,使本该在Trigger中写的代码分到Handler中,代码更加清晰. ...

  2. 如何从零基础学习VR

    转载请声明转载地址:http://www.cnblogs.com/Rodolfo/,违者必究. 近期很多搞技术的朋友问我,如何步入VR的圈子?如何从零基础系统性的学习VR技术? 本人将于2017年1月 ...

  3. IOS基础学习-2: UIButton

    IOS基础学习-2: UIButton   UIButton是一个标准的UIControl控件,UIKit提供了一组控件:UISwitch开关.UIButton按钮.UISegmentedContro ...

  4. HTML5零基础学习Web前端需要知道哪些?

    HTML零基础学习Web前端网页制作,首先是要掌握一些常用标签的使用和他们的各个属性,常用的标签我总结了一下有以下这些: html:页面的根元素. head:页面的头部标签,是所有头部元素的容器. b ...

  5. python入门到精通[三]:基础学习(2)

    摘要:Python基础学习:列表.元组.字典.函数.序列化.正则.模块. 上一节学习了字符串.流程控制.文件及目录操作,这节介绍下列表.元组.字典.函数.序列化.正则.模块. 1.列表 python中 ...

  6. python入门到精通[二]:基础学习(1)

    摘要:Python基础学习: 注释.字符串操作.用户交互.流程控制.导入模块.文件操作.目录操作. 上一节讲了分别在windows下和linux下的环境配置,这节以linux为例学习基本语法.代码部分 ...

  7. CSS零基础学习笔记.

    酸菜记 之 CSS的零基础. 这篇是我自己从零基础学习CSS的笔记加理解总结归纳的,如有不对的地方,请留言指教, 学前了解: CSS中字母是不分大小写的; CSS文件可以使用在各种程序文件中(如:PH ...

  8. Yaf零基础学习总结5-Yaf类的自动加载

    Yaf零基础学习总结5-Yaf类的自动加载 框架的一个重要功能就是类的自动加载了,在第一个demo的时候我们就约定自己的项目的目录结构,框架就基于这个目录结构来自动加载需要的类文件. Yaf在自启动的 ...

  9. Yaf零基础学习总结4-Yaf的配置文件

    在上一节的hello yaf当中我们已经接触过了yaf的配置文件了, Yaf和用户共用一个配置空间, 也就是在Yaf_Application初始化时刻给出的配置文件中的配置. 作为区别, Yaf的配置 ...

  10. qml基础学习 Canvas画笔

    一.画布元素 自qt4.7发布qml以来,qml也在一直不断的完善中,在qt4时代使用qml时如果需要异形图,那我们只能让设计师来切图,这样的感觉是很不爽的,总感觉开发没有那么犀利.但是到了qt5这一 ...

随机推荐

  1. C语言:结构体和联合体(共用体)

    结构体:struct 1.结构体变量的首地址能够被其最宽基本类型成员的大小所整除. 2.结构体每个成员相对于结构体首地址的偏移量(offset)都是成员的整数倍. 3.结构体的总大小为结构体最宽基本类 ...

  2. 混沌数学之离散点集图形DEMO

    最近看了很多与混沌相关的知识,并写了若干小软件.混沌现象是个有意思的东西,同时混沌也能够生成许多有意思的图形.混沌学的现代研究使人们渐渐明白,十分简单的数学方程完全可以模拟系统如瀑布一样剧烈的行为.输 ...

  3. 基于zabbix 的memached 多实例监控

    基于zabbix 的memached 多实例监控 zabbix agentd 配置文件新增配置: UserParameter=memcached.server.discovery[*],ps uax ...

  4. 第二章 Java浮点数精确计算

    1.实际意义 在实际开发中,如果需要进行float或double的精确计算(尤其是财务计算),直接使用float或double是不行的(具体的例子看下边的代码的main方法的测试结果),需要使用Big ...

  5. Win Socket编程原理及简单实例

    [转]http://www.cnblogs.com/tornadomeet/archive/2012/04/11/2442140.html 使用Linux Socket做了小型的分布式,如Linux ...

  6. 使用FlexiGrid实现Extjs表格的效果-网络传输小,更方便!

      近一段时间Extjs真的是风光无限好,只要是个做CRM/HRM之类的企业现在都在琢磨怎么在项目中用它,不过兄弟我可是不敢,原因很简单:太大/太笨/源码不好调试.但是对于Extjs漂亮的表格与功能的 ...

  7. Jmeter+Ant+Jenkins搭建持续集成的接口测试框架

    https://my.oschina.net/hellotest/blog/516079 摘要: 一个系统通常有多个接口,软件的生命周期中,我们会不断的去优化老的接口和开发新的接口,那么在这个过程中, ...

  8. 在Fedora10上安装MySQL5.0.18,告捷!

    又一次安MySQL了,为什么又呢,因为前面成功那次算配置,即配置Fedora10自带的MySQL,这个还不算自己安装的,所以有必要再安装一次,以后还装也有可能,换操作系统,换MySql版本都可能这样做 ...

  9. 开源 免费 java CMS - FreeCMS1.9 会员权限管理

    项目地址:http://www.freeteam.cn/ 会员权限管理 管理会员可使用的权限.会员在使用某一特定功能时,如投稿.可依据此会员所在会员组是否有投稿权限来决定会员能否够使用投稿功能. 1. ...

  10. 连接SDE空间数据库——SQL Server篇

    一.软件配置 要从 ArcMap 连接至 SQL Server 中的数据库或地理数据库,请在 ArcMap 计算机上安装 SQL Server native client 或 Microsoft OD ...