问题:

希望从字符串的某个特定位置开始抽取这个字符串的一部分。例如,对于输入到一个表单的用户名,想要得到这个用户名的前8个字符。

  

解决:

使用substr()选择子串

$substring = substr($string,$start,$length);
$username = substr($_GET['username'],0,8);

讨论:

1.如果$strart和$length都是正数,substr()会返回字符串从$start开始的$lenfth个字符。字符的第一个位置为0。

echo substr('I Love PHP!',3,5);

ove P

如果忽略$length,substr()会返回从$strart到原字符串末尾的子串。

起始位置为正数,未指定长度

echo substr('I Love PHP!',3);

ove PHP!

如果$start大于字符串的长度,substr()将会返回false

如果$start加 $length 超过了字符串末尾,substr()将返回从$start开始到字符串末尾的所有字符

echo substr('I Love PHP!',3,9);

ove PHP!

如果 $start 为负数, substr() 会从字符串末尾倒数来确定子串从哪里开始

echo substr('I Love PHP!',-4);

PHP!

echo substr('I Love PHP!',-4,3);

PHP

如果 $start 值为负数,而且超过了字符串的开始位置, substr() 就会把 $start 当作 0 来处理

如果 $length 为负数, substr() 会从字符串末尾倒数来确定到哪里结束

echo substr('I Love PHP!',3,-1);

Love PHP

echo substr('I Love PHP!',-4,-2);

PH

php函数之substr()的更多相关文章

  1. Oracle字符函数length substr concat实例

    --字符函数 --伪表dual --(1)求字符串长度 select length('123.456/-*') from dual --(2)截取函数求字符串的子串 ,) from dual --(3 ...

  2. MySQL 常用函数之——substr()

    substr()函数是用来截取数据库某一列字段中的一部分 常用的方式是: SBUSTR(str,pos); 就是从pos开始的位置,一直截取到最后. SUBSTR(str,pos,len); 这种表示 ...

  3. Oracle trunc()函数,decode()函数,substr函数,GREATEST函数,java中substring函数的用法

    --Oracle trunc()函数的用法/**************日期********************/1.select trunc(sysdate) from dual --2013- ...

  4. 2个sql 函数dbms_lob.substr 和 wm_concat

    转自: http://blog.csdn.net/wenzhongyan/article/details/50315473 http://blog.csdn.net/ojerryzuo/article ...

  5. Oracle的instr()函数和substr()函数

    INSTR()函数 可以使用instr函数对某个字符串进行判断,判断其是否含有指定的字符. 在一个字符串中查找指定的字符,返回被查找到的指定的字符的位置. 语法: instr(sourceString ...

  6. oracle 中INSTR 函数和SUBSTR函数的使用

    INSTR (源字符串, 目标字符串, 起始位置, 匹配序号) 在Oracle/PLSQL中,instr函数返回要截取的字符串在源字符串中的位置.只检索一次,就是说从字符的开始 到字符的结尾就结束. ...

  7. php中的字符串常用函数(二) substr() 截取字符串

    //substr($str, startIndex, length) //截取方向都是从左向右的. //length不写默认截取到最后一个. //length为正是个数(包括开头的个数),为负是索引( ...

  8. js 字符串截取函数substr,substring,slice之间的差异

    js 字符串的截取,主要有三个函数,一般使用三个函数:substr,substring,slice. 而这三个函数是不完全一样的,平时很难记住,在这里做下笔记,下次遇到的时候,直接从这里参考,调用合适 ...

  9. sqlite 截取字符串函数substr

    函数:substr(string string,num start,num length) 用法: string为字符串: start为起始位置:字符串的第一个字符的位置为1,不是从0开始计算 len ...

随机推荐

  1. LC 846. Hand of Straights

    Alice has a hand of cards, given as an array of integers. Now she wants to rearrange the cards into ...

  2. 安卓之Android.mk编写

    题记:编译环境可以参考https://www.cnblogs.com/ywjfx/p/9960817.html 不管是写C还是java,我想所有的程序员都经历过HelloWorld程序的编写,现在让我 ...

  3. Linux安全加固之中间件Tomcat

    (注:皆为参考操作配置) 这次是tomcat的Linux加固,分为身份鉴别.访问控制.安全审计.资源控制和入侵防范5个方面大部分加固基于xml配置文件进行修改,也应根据实际需求制定方案.寻找配置文件目 ...

  4. Selenium 2自动化测试实战26(unittest单元测试框架)

    一.unittest单元测试框架 1.认识单元测试 1.断言方法 #计算器类 #coding:utf-8 #计算器类 class Count: def __init__(self,a,b): self ...

  5. c++11实现线程池

    http://note.youdao.com/noteshare?id=de17ff681b277bb914ef46aeb9271fc4

  6. nginx主配置文件实例

    1.修改配置文件 重要:修改配置文件使用虚拟机,否则怎么配置都不生效,添加如下用户 [root@host-10-1-1-161 html]# ll /etc/nginx/nginx.conf -rw- ...

  7. django中使用mysql数据库

    django连接mysql 安装MySQL 1 linux: apt install mysql-server apt install mysql-client mysql_secure_instal ...

  8. Keil version 2汉字显示乱码的解决方案

    Keil version 2汉字显示乱码的解决方案 Keil2对汉字的支持不好,在删除汉字字符时,一不小心会删除一半而留一半,这时并不显示错误或乱码,而是貌似都删除了,但编译程序可能会报错,这时再查错 ...

  9. OpenStack组件——Glance镜像服务

    1.glance介绍 Glance是Openstack项目中负责镜像管理的模块,其功能包括虚拟机镜像的查找.注册和检索等. Glance提供Restful API可以查询虚拟机镜像的metadata及 ...

  10. 应用安全 - 社工 - 大数据 - Fofa - 汇总

    搜索语法 title=”abc”   header=”abc”  body=”abc”  domain=”xx.com”  host=”.xx.cn”  port=”443”     ip=”1.1. ...