其中包括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. 关于Java的一些NIO框架的一点想法

    闲着有点无聊想写点东西. 问题:生活中工作中,会有人问我javaNIO框架里面 Netty Mina  xSocket Grizzly 等等哪个比较好? 在这里写一下自己的感受,也算是总结一下吧 在我 ...

  2. Android数据填充器LayoutInflater

    LayoutInflater类在应用程序中比较实用,可以叫布局填充器,也可以成为打气筒,意思就是将布局文件填充到自己想要的位置,LayoutInflater是用来找res/layout/下的xml布局 ...

  3. 怎么才能成为一名PHP专家?

    本文作者Bruno Skvorc是一名资深的Web开发者.在这篇文章里主要是讲述成为一名专业的PHP专家所要经历的过程,以及在这个过程里要如何学习掌握技巧和对工具的舍取.(以下为编译内容) 当阅读各种 ...

  4. 10 款基于 jQuery 的切换效果插件推荐

    本文整理了 10 款非常好用的 jQuery 切换效果插件,包括平滑切换和重叠动画等,这些插件可以实现不同元素之间的动态切换. 1. InnerFade 这是一个基于 jQuery 的小插件,可以实现 ...

  5. xUtils如何通过注解对FindViewById进行封装

    之前讲到了介绍了一下xUtils的基本使用方法,今天我们就来详细介绍一下关于xUtils中的ViewUtils模块. 在ViewUtils模块中我们首先看到的是它采用了一种注解的方式进行声明,那么我们 ...

  6. HP Onboard Administrator 固件升级

    HP Onboard Administrator是HP公司服务器的远程管理平台.更新是一个非常简单的过程,可以完全通过办公自动化web管理界面. 1. 下载所需二进制文件 下载地址:HP BladeS ...

  7. (转)NGUI研究院之三种方式监听NGUI的事件方法

    NGUI事件的种类很多,比如点击.双击.拖动.滑动等等,他们处理事件的原理几乎万全一样,本文只用按钮来举例. 1.直接监听事件 把下面脚本直接绑定在按钮上,当按钮点击时就可以监听到,这种方法不太好很不 ...

  8. 独立开发人员低成本推广APP的18条技巧

    导语:知道并不等于运行,有些最主要的推广方法往往会被忽略.这些,是自国外开发人员总结出的这18条经验. 如今市面上充满了大牌子大公司和大制作的手机游戏,常常有游戏花300万成本开发,然后再花2000万 ...

  9. java list按照元素对象的指定多个字段属性进行排序

    ListUtils.java---功能类 package com.enable.common.utils; import java.lang.reflect.Field;import java.tex ...

  10. windows、linux mysql部署

    阅读目录: 1.Windows下安装MySQL 2.Linux下安装MySQL 序章: MySQL是个小型的数据库,用来自己做小项目,做学习练习什么的再适合不过了,不过新手总会被一些莫名奇妙的问题难住 ...