当前位置: 编程技术>php
本页文章导读:
▪PHP 字符串分割和比较
或者使用strcmp来判断,但是这个能够告诉你两个字符串是否相等,但是无法告诉你在那里不同。 我的思路是单字符串分割为一个个字母(character),这样比较就能精确知道在那个位置不同了。.........
▪PHP parse_url 一个好用的函数
举例子如下: 代码如下: $url = "http://www.electrictoolbox.com/php-extract-domain-from-full-url/"; $parts = parse_url(/blog_article/$url/index.html); 输出: 代码如下: Array ( [scheme] => http [host] => www.electrictoolbox.com [path] => /php-extract-d.........
▪php面向对象全攻略 (十七) 自动加载类
自动加载类 很多开发者写面向对象的应用程序时,对每个类的定义建立一个PHP 源文件。一个很大 的烦恼是不得不在每个脚本(每个类一个文件)开头写一个长长的包含文件的列表。 在软.........
[1]PHP 字符串分割和比较
来源: 互联网 发布时间: 2013-11-30
或者使用strcmp来判断,但是这个能够告诉你两个字符串是否相等,但是无法告诉你在那里不同。
我的思路是单字符串分割为一个个字母(character),这样比较就能精确知道在那个位置不同了。
分隔字符串,使用“str_split”就可以了,语法参考【2】。然后输出结果数组,好处是连空格也会作为数组的元素。我之前的例子就是因为前一个字符串包含2个空格,而后一个只有一个。但是输出的时候看到的显示都是一样的。
也可以按照其他分隔符进行分割,如“explode”或者“preg_split”,参考【3】和【4】。前者使用简单的分割数,后者使用正则表达式。“split”已经废除(deprecated)了。
还有一个很有用的函数就是“str_word_count”,可以将字符串分割为数组,同时清除数字和标点符号。如果你想统计单词出现的频率,就可使用“array_count_values”,参考【5】。
参考:
【1】http://us2.php.net/manual/en/language.operators.comparison.php
【2】http://us2.php.net/manual/en/function.str-split.php1
【3】http://us2.php.net/manual/en/function.explode.php
【4】http://us2.php.net/manual/en/function.str-split.php
【5】http://us2.php.net/manual/en/function.array-count-values.php
我的思路是单字符串分割为一个个字母(character),这样比较就能精确知道在那个位置不同了。
分隔字符串,使用“str_split”就可以了,语法参考【2】。然后输出结果数组,好处是连空格也会作为数组的元素。我之前的例子就是因为前一个字符串包含2个空格,而后一个只有一个。但是输出的时候看到的显示都是一样的。
也可以按照其他分隔符进行分割,如“explode”或者“preg_split”,参考【3】和【4】。前者使用简单的分割数,后者使用正则表达式。“split”已经废除(deprecated)了。
还有一个很有用的函数就是“str_word_count”,可以将字符串分割为数组,同时清除数字和标点符号。如果你想统计单词出现的频率,就可使用“array_count_values”,参考【5】。
参考:
【1】http://us2.php.net/manual/en/language.operators.comparison.php
【2】http://us2.php.net/manual/en/function.str-split.php1
【3】http://us2.php.net/manual/en/function.explode.php
【4】http://us2.php.net/manual/en/function.str-split.php
【5】http://us2.php.net/manual/en/function.array-count-values.php
[2]PHP parse_url 一个好用的函数
来源: 互联网 发布时间: 2013-11-30
举例子如下:
$url = "http://www.electrictoolbox.com/php-extract-domain-from-full-url/";
$parts = parse_url(/blog_article/$url/index.html);
输出:
Array
(
[scheme] => http
[host] => www.electrictoolbox.com
[path] => /php-extract-domain-from-full-url/
)
又如:
<?php
$url = 'http://username:password@hostname/path?arg=value#anchor';
print_r(parse_url(/blog_article/$url/index.html));
echo parse_url(/blog_article/$url, PHP_URL_PATH/index.html);
?>
输出:
Array
(
[scheme] => http
[host] => hostname
[user] => username
[pass] => password
[path] => /path
[query] => arg=value
[fragment] => anchor
)
可以看到,可以很容易分解出一个URL的各个部,那如果要拿指定的部分出来的话也很容易,如
echo parse_url(/blog_article/$url, PHP_URL_PATH/index.html);
就是在第二个参数中,设定如下的参数:
PHP_URL_SCHEME, PHP_URL_HOST, PHP_URL_PORT, PHP_URL_USER, PHP_URL_PASS, PHP_URL_PATH, PHP_URL_QUERY or PHP_URL_FRAGMENT.
代码如下:
$url = "http://www.electrictoolbox.com/php-extract-domain-from-full-url/";
$parts = parse_url(/blog_article/$url/index.html);
输出:
代码如下:
Array
(
[scheme] => http
[host] => www.electrictoolbox.com
[path] => /php-extract-domain-from-full-url/
)
又如:
代码如下:
<?php
$url = 'http://username:password@hostname/path?arg=value#anchor';
print_r(parse_url(/blog_article/$url/index.html));
echo parse_url(/blog_article/$url, PHP_URL_PATH/index.html);
?>
输出:
代码如下:
Array
(
[scheme] => http
[host] => hostname
[user] => username
[pass] => password
[path] => /path
[query] => arg=value
[fragment] => anchor
)
可以看到,可以很容易分解出一个URL的各个部,那如果要拿指定的部分出来的话也很容易,如
echo parse_url(/blog_article/$url, PHP_URL_PATH/index.html);
就是在第二个参数中,设定如下的参数:
PHP_URL_SCHEME, PHP_URL_HOST, PHP_URL_PORT, PHP_URL_USER, PHP_URL_PASS, PHP_URL_PATH, PHP_URL_QUERY or PHP_URL_FRAGMENT.
[3]php面向对象全攻略 (十七) 自动加载类
来源: 互联网 发布时间: 2013-11-30
自动加载类
很多开发者写面向对象的应用程序时,对每个类的定义建立一个PHP 源文件。一个很大
的烦恼是不得不在每个脚本(每个类一个文件)开头写一个长长的包含文件的列表。
在软件开发的系统中,不可能把所有的类都写在一个PHP 文件中,当在一个PHP 文件
中需要调用另一个文件中声明的类时,就需要通过include 把这个文件引入。不过有的时候,
在文件众多的项目中,要一一将所需类的文件都include 进来,是一个很让人头疼的事,所以
我们能不能在用到什么类的时候,再把这个类所在的PHP 文件导入呢?这就是我们这里我们
要讲的自动加载类。
在PHP5 中,可以定义一个__autoload()函数,它会在试图使用尚未被定义的类时自动调
用,通过调用此函数,脚本引擎在PHP 出错失败前有了最后一个机会加载所需的类,
__autoload()函数接收的一个参数,就是你想加载的类的类名,所以你做项目时,在组织定义
类的文件名时,需要按照一定的规则,最好以类名为中心,也可以加上统一的前缀或后缀形
成文件名,比如xxx_classname.php、classname_xxx.php 以及就是classname.php 等等。
本例尝试分别从MyClass1.php 和MyClass2.php 文件中加载MyClass1 和MyClass2 类
代码片段
<?php
function __autoload($classname) {
require_once $classname . '.php';
}
//MyClass1类不存在自动调用__autoload()函数,传入参数”MyClass1”
$obj = new MyClass1();
//MyClass2类不存在自动调用__autoload()函数,传入参数”MyClass2”
$obj2 = new MyClass2();
?>
很多开发者写面向对象的应用程序时,对每个类的定义建立一个PHP 源文件。一个很大
的烦恼是不得不在每个脚本(每个类一个文件)开头写一个长长的包含文件的列表。
在软件开发的系统中,不可能把所有的类都写在一个PHP 文件中,当在一个PHP 文件
中需要调用另一个文件中声明的类时,就需要通过include 把这个文件引入。不过有的时候,
在文件众多的项目中,要一一将所需类的文件都include 进来,是一个很让人头疼的事,所以
我们能不能在用到什么类的时候,再把这个类所在的PHP 文件导入呢?这就是我们这里我们
要讲的自动加载类。
在PHP5 中,可以定义一个__autoload()函数,它会在试图使用尚未被定义的类时自动调
用,通过调用此函数,脚本引擎在PHP 出错失败前有了最后一个机会加载所需的类,
__autoload()函数接收的一个参数,就是你想加载的类的类名,所以你做项目时,在组织定义
类的文件名时,需要按照一定的规则,最好以类名为中心,也可以加上统一的前缀或后缀形
成文件名,比如xxx_classname.php、classname_xxx.php 以及就是classname.php 等等。
本例尝试分别从MyClass1.php 和MyClass2.php 文件中加载MyClass1 和MyClass2 类
代码片段
代码如下:
<?php
function __autoload($classname) {
require_once $classname . '.php';
}
//MyClass1类不存在自动调用__autoload()函数,传入参数”MyClass1”
$obj = new MyClass1();
//MyClass2类不存在自动调用__autoload()函数,传入参数”MyClass2”
$obj2 = new MyClass2();
?>
最新技术文章: