PHP中字符串的处理

在C语言中字符串是作为字节数组处理的。在Java语言中字符串是作为对象处理的。

而php则把字符串作为基本数据类型来处理。

通常对字符串的处理涉及字符串的格式化。字符串的分割和连接、字符串的比较、以及字符串的查找、匹配和替换。

<?php
    echo substr( "1234567", 2, 4 );  //将字串用函数substr()处理,输出子字符串 345
    echo substr( 123456, 2, 4 );     //将整型用字串函数处理,输出同样是字符串 345
    echo hello;                      //会先找hello常量,找不到就会将常名看作是字符串使用 

    $str = "lamp";          //声明一个字符串$str,值为lamp
    echo $str."<br>";       //将字符串看作是一个连续的实体,一起输出 lamp
    //以下将字符串看作字符集合,按数组方式一个个字符输出
    echo $str{0};                   //输出字符串$str中第一个字符 l
    echo $str[1];                   //输出字符串$str中第二个字符 a,[ ] 也可以,不过已过时
    echo $str{2};                   //输出字符串$str中第三个字符 m
    echo $str{3};                   //输出字符串$str中第四个字符 p
    echo $str{0}.$str{1};           //输出字符串$str中前两个字符 la

    $last = $str{strlen($str)-1};   //获取字符串$str中最后一个字符 p
    $str{strlen($str)-1} = ‘e‘;     //修改字符串$str中最后一个字符串,字符串为lame

    $str{1} = "nginx";   //使用一个字串去修改另一字串中的第2个字符,结果:lnmp;
<?php
    //声明一个关联数组,数组名为$lamp, 成员有4个
    $lamp = array( ‘os‘=>‘Linux‘, ‘webserver‘ =>‘Apache‘, ‘db‘=>‘MySQL‘, ‘language‘=>‘php‘ );

    //可以解析,双引号中对于数组索引,右方括号(])标志着索引的结束,
    //但是注意:不要在[]中使用引号,否则会在引号处结束
    echo "A OS is $lamp[os].";

    //不能解析,如果在对关联数组下标使用引号就必须使用花括号,否则将出错
    echo "A OS is $lamp[‘os‘].";

    //可以解析,如果在对关联数组下标使用引号就必须使用花括号,否则将出错
    echo "A OS is {$lamp[‘os‘]}.";

    //可以解析,注意PHP将数组下标看作常量名,并且常不存在时将常量名称转为了字中,效率低
    echo "A OS is {$lamp[os]}.";

    echo "This square is $square->width meters broad."; //可以解析,对象中的成员也可以解析
    echo "This square is $square->width00 centimeters broad."; //不能解析,可以使用花括号解决

    echo "This square is {$square->width}00 centimeters broad."; //可以解析, 使用花括号解决

时间: 2024-11-05 12:29:33

PHP中字符串的处理的相关文章

Python中字符串格式化如何实现?

Python开发中字符串格式化有两种方式: 百分号方式.format方式 百分号的方式相对来说比较老,而format方式则是比较先进的方式,企图替换古老的方式,目前两者并存. This PEP proposes a new system for built-in string formatting operations, intended as a replacement for the existing '%' string formatting operator. 1.百分号方式 %[(na

python中字符串链接的七种方式

一. str1+str2 string类型 '+'号连接 >>> str1="one" >>> str2="two" >>> str1+str2 'onetwo' >>>注意:该方式性能较差,因为python中字符串是不可变的类型,使用 + 连接两个字符串时会生成一个新的字符串,生成新的字符串就需要重新申请内存,当连续相加的字符串很多时(a+b+c+d+e+f+...) ,效率低下就是必然的了例

Python中字符串查找效率比较

Python中字符串查找方式有多种,常见的有re.match/search or str.find 用一个例子来说明各种方式的效率如下: from timeit import timeit import re def find(string, text): if string.find(text) > -1: pass def re_find(string, text): if re.match(text, string): pass def best_find(string, text): i

【转】Java中字符串中子串的查找共有四种方法(indexof())

原文网址:http://wfly2004.blog.163.com/blog/static/1176427201032692927349/ Java中字符串中子串的查找共有四种方法,如下:1.int indexOf(String str) :返回第一次出现的指定子字符串在此字符串中的索引. 2.int indexOf(String str, int startIndex):从指定的索引处开始,返回第一次出现的指定子字符串在此字符串中的索引. 3.int lastIndexOf(String st

c语言中字符串操作的工具类

 1.编写头文件 #define _CRT_SECURE_NO_WARNINGS //#pragmawarning(disable:4996) #include <stdio.h> #include <stdlib.h> #include <string.h> struct CString { char *p;        //保存字符串首地址 int reallength; //实际长度 }; typedef struct CString mystring;//

Java中字符串比较时==和equals的区别

==是比较两个字符串引用的地址是否相同,即是否指向同一个对象,而equals方法则比较字符串的内容是否相同. 例如String a = "abc"; String b = "abc"; a == b返回true,a.equals(b)同样返回true,这是为什么呢? 原来程序在运行时有一个字符串池,创建字符串时会先查找池中是否有相应的字符串,如果已经存在的话只需把引用指向它即可,如果没有则新建一个. 上例中创建a时,会在字符串池中首先创建一个"abc&qu

php中字符串编码

php中抓取网页拼接url的时候经常需要进行编码,这时候就用到两个函数 mb_detect_encoding - 检测字符的编码. mb_convert_encoding - 转换字符的编码 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 <?php /* 使用当前的 detect_order 来检测字符编码 */ echo mb_detect_encoding($str); /* "auto" 将根据 mbstring.language 来扩展

C语言中字符串如何转换为二进制、八进制、十进制、十六进制

在C语言某个程序当中需要把文本16进制转换成对应的16进制数,比如字符串"0x1a"转换成10进制的26,可以用以下函数来实现 相关函数: atof, atoi, atol, strtod, strtoul表头文件: #include <stdlib.h>定义函数: long int strtol(const char *nptr, char **endptr, int base):函数的解释说明 这个函数会将参数nptr字符串根据参数base来转换成长整型数.参数base

PHP中字符串的连接和换行

PHP中字符串的连接使用点,不是加号.换行\n需要用双引号括起来,不能用单引号. eg. <?php print_r("hello"."\n"); print_r("world"."\n"); print_r('hello'.'world'."\n"); ?> 结果: hello world hello world

Java中字符串对象

Java中字符串对象创建有两种形式,一种为字面量形式,如String str = "droid";,另一种就是使用new这种标准的构造对象的方法,如String str = new String("droid");,这两种方式我们在代码编写时都经常使用,尤其是字面量的方式.然而这两种实现其实存在着一些性能和内存占用的差别.这一切都是源于JVM为了减少字符串对象的重复创建,其维护了一个特殊的内存,这段内存被成为字符串常量池或者字符串字面量池. 工作原理 当代码中出现字