php 使用 parse_str 把查询字符串解析到变量中

2017年7月12日 评论已被关闭

<?php
$url='http://shop.m.taobao.com/shop/coupon.htm?seller_id=1888136962&activity_id=a3cc6e4ad26e4f0ea2ba144d2b60364d';
$parse_url=parse_url($url);
print_r($parse_url);

parse_str($parse_url['query'],$output);

print_r($output);
?>

输出:
Array
(
    [scheme] => http
    [host] => shop.m.taobao.com
    [path] => /shop/coupon.htm
    [query] => seller_id=1888136962&activity_id=a3cc6e4ad26e4f0ea2ba144d2b60364d
)
Array
(
    [seller_id] => 1888136962
    [activity_id] => a3cc6e4ad26e4f0ea2ba144d2b60364d
)

参考资料:

https://stackoverflow.com/questions/8469767/get-url-query-string

分类: php 标签: ,

php 数组按长度排序

2017年7月12日 评论已被关闭

1.php低版本

function sort($a,$b){
    return strlen($b)-strlen($a);
}

usort($array,'sort');

2.php 5.3 匿名函数

usort($array, function($a, $b) {
    return strlen($b) – strlen($a);
});

3.php 7

usort($array, function($a, $b) {
    return strlen($b) <=> strlen($a);
});

参考资料:

https://stackoverflow.com/questions/838227/php-sort-an-array-by-the-length-of-its-values

分类: php 标签:

正则表达式问号 冒号 ?:不捕获匹配结果的使用

2017年7月12日 评论已被关闭

(?:pattern)是非捕获型括号  匹配pattern,但不捕获匹配结果。
(pattern)是捕获型括号。  匹配pattern,匹配pattern并捕获结果,自动获取组号。
(?<name> pattern )  匹配pattern,  匹配pattern并捕获结果,设置name为组名。
使用小括号指定一个子表达式后,匹配这个子表达式的文本(也就是此分组捕获的内容)可以在表达式或其它程序中作进一步的处理。默认情况下,每个捕获组会自动拥有一个组号,规则是:从左向右,以分组的左括号为标志,第一个出现的分组的组号为1,第二个为2,以此类推。
如果正则表达式中同时存在普通捕获组和命名捕获组,那么捕获组的编号就要特别注意,编号的规则是先对普通捕获组进行编号,再对命名捕获组进行编号。
为了避免括号太多使编号混乱,也为了避免无用的捕获提高效率,在不需要捕获只需要指定分组的地方就可以使用非捕获型括号。问题里的非捕获型括号就是为此使用的。

例如:
$reg='/<dd class="(?:tb-rate-higher|tb-rate-equal|tb-rate-lower)">([\S\s]*?)<\/dd>/';

第一个括号里面的就不会被捕获

分类: php 标签:


标签

ajax apache array array_slice CentOS checkbox composer cookie csv curl date DATE_FORMAT excel FCKEditor file_get_contents laravel Magento Certified Developer mb_substr memcache Memcached MySQL String Functions Netbeans openssl php面试题 preg_match_all preg_replace QQ登录 rewrite SaeStorage serialize session setTimeout Sphinx spl Storage strtotime ueditor vsftp vsftpd Zend zip 分割字符串 图片处理 新浪云 正则表达式

存档