php中的正则函数主要有三个-正则匹配,正则替换
php中变量的声明?
由于php声明变量的时候, 不支持使用 var关键字, 又不能直接写一个变量名字, 孤零零的放在那里,
所以, 在php中声明变量的方式, 同时也是给变量初始化的形式, 即: "$var = 0; $var2 = array(); "
markdown中, 如何写 "$": 直接使用$, 会被表示成 "( )", 又不支持转义, 那么就是用 引号来表示$ : "$"
subject: 的读音 我们就读成这个: ['s^bd3ekt], 音标注释里其实有三种:
美[ˈsʌbdʒɪkt; ˈsʌbˌdʒɛkt; səbˈdʒɛkt]
==============================
markdown的表格注意事项:
是通过" 管线图" 来实现的, 所以必须是 管线 才能 生成表格:
管: 是"竖线", 用来分隔字段. 线是"横线" 用来分隔表头和内容, 横线上方的内容被解析为表头: th, 横线下方的内容被解析为内容.
必须要有 '横线", 才会被认为是 表格, 如果没有 "横线", 则不会生成表格
必须是 "横线"做分隔线, 不能是*, 或者下划线____,
横线的个数没有规定, 只要在一个(包括一个)以上就可以!
分隔水平线的 数目, 应该跟字段域的 个数相同, 如果更少, 则只会显示 "更少的" 字段表格, 如果少到 只有一个,则不会解析为表格
管线的个数,一个字段域 只能 有1根 竖线. 同时, 在两端的管线, 不需要写!
横线上方的||||, 内容, 只能有一行, 不能有多行, 否则不会被认为是表格
由于表格是 块 元素, 所以, 整个表格的上方必须有一个空行, 否则也不会被解析为表格, (按原样文字显示), 下方似乎不要求有一个空行???
单元格的对齐, 是用冒号来表示的 , 冒号在横线的左边, 则是左对齐, 两端都有冒号, 则是居中对齐.
======================================================
php中的正则函数主要有三个- 正则匹配,正则替换 < 连同一个是str_replace函数比较记忆>
有三个正则函数 , 要比较起来才好记忆:
函数 | 函数名称 | 参数 | 返回值 | 匹配次数控制 |
---|---|---|---|---|
preg_match() |
正则匹配(只匹配最开始遇到的那一次) | ($patter, $subject, [$matches]) | 返回匹配的次数:0或1,要么为0,要么为1 | 只匹配1次 |
preg_match_all |
正则匹配(匹配完整个字符串) | ($pattern, $subjec, [$matches] | 返回匹配的次数:0或1,要么为0,要么为1 | 匹配完整个字符串 |
preg_replace |
正则替换 | ($patter, $replacement, $subject) | 返回替换后的$subject. | 正则替换不像正则匹配有两个函数, 替换只有1个函数, 替换次数有第4个参数$limit来控制.$limit=1表示只替换1次, =2表示替换2次, =-1表示无限次 |
总结 | 因为preg匹配返回匹配的次数0或1, 所以可以用if(preg_match/_all) 来判断是否匹配成功, 也可以用echo preg_replace()来输出匹配替换后的字符串,而$matches则存储了匹配的结果: $matches[0]: 所有的匹配结果, \$matches[i]: 第i个分组匹配结果, \$1,\$2,...,是分组替换符, 后面如果跟其他字面字符时用${1}abcxxx??? 来区别 . |
|||
str_replace | 字符串替换 | 还是通常的参数顺序:$search, $replacement, $subject | 返回被替换后的字符串,即使用时用原来的变量去接收函数的返回值: $content = str_replace($v, "替换内容", $content) |
全部替换 |
======================================
preg_match()只匹配1次, preg_match_all会用这个模式去 匹配整个字符串.
"$matches" 的[0]元素, 是所有的匹配结果, 只有具有分组的时候, 才会有其他 [1], [2]... 元素...否则就没有[1]...其他元素, 只有[0]这个元素!!
我们在遍历的时候, 只要遍历 $matches[0]就好了.$matches[0]就好像 "一维数组" 一样.
php 的很多函数, 都是既可以处理 :数组, 又可以处理 字符串的!
=============================
json是 string 字符串 "对象"!! 而json中的key:value的value可以通过 点号 . 的方式来引用! 因此, 从ajaxReturn返回的 json数据, 在js客户端js脚本中, 就可以像对象/ 对象的成员 一样, 使用json对象的成员数据:
========================================
data.status, data.username, data.id...., 那么在客户端js脚本中需要什么, 服务器端的data数组中就去提供什么!'
===========================================
php对json的处理?
有两个 原生的:
1个是 将 $value (字符串或数组) 转换为 json 的: json_encode($value);
另一个是 json string decode: 默认的是返回object, 如果设置$assoc为true, 则返回 数组!
json_decode($json_string, [$assoc=false]);
而think对json的处理是: 在class Action 中的方法是:
jsonReturn(array('status'=>0), 'json');
在返回后的 ajax /post/get的javascript脚本函数中, 就通过 判断 "data.status"的值来决定处理的 流程方向.
jquery的append添加函数?
一般, jquery中的添加, 有append, appendTo. 一般用得最多的是: append. 而且也符合常规的思维: 向前面的 dom对象添加 内容:
$('#main'). append(str);
在函数中, 可以直接调用另一个对象的click() 事件: 如要 在
ajax/post, get的方法中, 就可以直接调用 关闭按钮xx的 click事件: .... $('#close').click();....
=======================================================
php中的正则函数主要有三个-正则匹配,正则替换的更多相关文章
- php中的正则函数:正则匹配,正则替换,正则分割 所有的操作都不会影响原来的字符串.
有一个长期的误解, 如果要分组, 必须用 小括号 和 |, 而不能用 中括号 和 |. [ab|AB]表示的不是 匹配 ab或 AB, 而是表示 匹配 a,b, |, A, B 这5个字符中 的任意 ...
- Java中获取键盘输入值的三种方法
Java中获取键盘输入值的三种方法 Java程序开发过程中,需要从键盘获取输入值是常有的事,但Java它偏偏就没有像c语言给我们提供的scanf(),C++给我们提供的cin()获取键盘输入值 ...
- linux运维中的命令梳理(三)
----------文本操作命令---------- sed命令:文本编辑工具 sed是一个很好的文件处理工具,本身是一个管道命令,主要是以行为单位进行处理,可以将数据行进行替换.删除.新增.选取等特 ...
- <实训|第九天>掌握linux中普通的权限控制和三种特殊的权限(sst),做合格的运维工程师
linux中,权限的学习是必不可少的,不论是作为一名运维工程师或者是单一的管理者,学习好linux中的权限控制,你就可以保护好自己的隐私同时规划好你所管理的一切. 权限的学习是很多的,不要认为自己已经 ...
- 使用虚幻引擎中的C++导论(三-反射系统与迭代器)
使用虚幻引擎中的C++导论(三) 第一,这篇是我翻译的虚幻4官网的新手编程教程,原文传送门,有的翻译不太好,但大体意思差不多,请支持我O(∩_∩)O谢谢. 第二,某些细节操作,这篇文章省略了,如果有不 ...
- MVC3中,在control里面三种Html代码输出形式
MVC3中,在control里面三种Html代码输出形式:ViewData["msg"] = "<br /> Title <br />" ...
- 将Excel中数据导入数据库(三)
上篇文章将Excel中数据导入数据库时,将从Excel读入的数据均转换成了数据库相应字段的类型,其实这是没有必要的,因为对于数据库各种类型的插入,均可以字符串格式插入.比如表WQ_SWMSAR_A字段 ...
- JAVA中常用需要设置的三个环境变量(JAVA_HOME、CLASSPATH、PATH)
JAVA中常用需要设置的三个环境变量: JAVA_HOME.CLASSPATH.PATH (一) 配置环境变量:(相对路径) 1. JAVA_HOME=x:/jdk1.6.0 2. 用%JAVA_HO ...
- SQLServer中处理每天四亿三千万记录
我是如何在SQLServer中处理每天四亿三千万记录的 首先声明,我只是个程序员,不是专业的DBA,以下这篇文章是从一个问题的解决过程去写的,而不是一开始就给大家一个正确的结果,如果文中有不对的地 ...
随机推荐
- 【BZOJ-1976】能量魔方Cube 最小割 + 黑白染色
1976: [BeiJing2010组队]能量魔方 Cube Time Limit: 10 Sec Memory Limit: 64 MBSubmit: 884 Solved: 307[Submi ...
- 【BZOJ-3573】米特运输 树形DP
3573: [Hnoi2014]米特运输 Time Limit: 20 Sec Memory Limit: 128 MBSubmit: 1023 Solved: 604[Submit][Statu ...
- Android成长日记-使用Intent实现页面跳转
Intent:可以理解为信使(意图),由Intent来协助完成Android各个组件之间的通讯 Intent实现页面之间的跳转 1->startActivity(intent) 2->st ...
- linux最常用的20条命令
玩过Linux的人都会知道,Linux中的命令的确是非常多,但是玩过Linux的人也从来不会因为Linux的命令如此之多而烦恼,因为我们只需要掌握我们最常用的命令就可以了.当然你也可以在使用时去找一下 ...
- glibc resolv/res_send.c getaddrinfo() buffer stack smash when dealing malformation big DNS Response Package
catalogue . 漏洞简述 . 调试环境搭建 . 漏洞利用 . 漏洞分析 . 缓解修复方案 1. 漏洞简述 0x1: 函数调用顺序 getaddrinfo (getaddrinfo.c) -&g ...
- Nginx Parsing HTTP Package、header/post/files/args Sourcecode Analysis
catalog . Nginx源码结构 . HTTP Request Header解析流程 . HTTP Request Body解析流程 1. Nginx源码结构 . core:Nginx的核心源代 ...
- Windows网络驱动、NDIS驱动(微端口驱动、中间层驱动、协议驱动)、TDI驱动(网络传输层过滤)、WFP(Windows Filtering Platform)
catalog . 引言 . Windows 2000网络结构和OSI模型 . NDIS驱动 . NDIS微端口驱动编程实例 . NDIS中间层驱动编程实例 . NDIS协议层驱动编程实例 . TDI ...
- Linux Process Management && Process Scheduling Principle
目录 . 引言 . 进程优先级 . 进程的生命周 . 进程表示 . 进程管理相关的系统调用 . 进程调度 . 完全公平调度类 . 实时调度类 . 调度器增强 . 小结 1. 引言 在多处理器系统中,可 ...
- 巧妙的重载魔术方法__call()
工作半年了,感觉这半年学到的东西比大学四年学到的还要多,主要原因是心静下来了,目标也明确了,不会去整天的和游戏纠缠在一起了.大学时候其实也意识到了玩游戏会影响自己的正常学习和工作的,但是一直控制不了自 ...
- VS2012旗舰版接选择调试 出现了这样一个错误
问题: 解决: 项目-右键-属性,勾选如下配置试试