2019独角兽企业重金招聘Python工程师标准>>>

parse_url()

该函数可以解析 URL,返回其组成部分。它的用法如下:

array parse_url(string $url)

此函数返回一个关联数组,包含现有 URL 的各种组成部分。如果缺少了其中的某一个,则不会为这个组成部分创建数组项。组成部分为:

  • scheme - 如 http

  • host - 如 localhost

  • port - 如 80

  • user

  • pass

  • path - 如 /parse_str.php

  • query - 在问号 ? 之后  如 id=1&category=php&title=php-install

  • fragment - 在散列符号 # 之后

此函数并不意味着给定的 URL 是合法的,它只是将上方列表中的各部分分开。parse_url() 可接受不完整的 URL,并尽量将其解析正确。此函数对相对路径的 URL 不起作用。

<?php$url = ;$parts = parse_url($url);print_r($parts);
?>
程序运行结果如下:
Array
( [scheme] => http [host] => blog.snsgou.com [path] => /welcome/
)
<?php$url = 'http://username:password@hostname/path?arg=value#anchor';print_r(parse_url($url));echo '<br />';echo parse_url($url, PHP_URL_PATH);
?>
程序输出:Array
([scheme] => http[host] => hostname[user] => username[pass] => password[path] => /path[query] => arg=value[fragment] => anchor
)
程序输出:Array
([scheme] => http[host] => hostname[user] => username[pass] => password[path] => /path[query] => arg=value[fragment] => anchor
)

可以看到,可以很容易分解出一个URL的各个部,那如果要拿指定的部分出来的话也很容易,如:

echo parse_url($url, PHP_URL_PATH);

parse_str()

parse_str用来解析URL中的查询字符串,即可以通过$_SERVER['QUERY_STRING']取得的字符串值,假如我们请求的URL是 http://localhost/parse_str.php?id=1&category=php&title=php-install,那么$_SERVER['QUERY_STRING']返回的值为id=1&category=php&title=php-install,而这种形式的字符串恰巧可以使用parse_str解析成关联数组的形式。

用法如下:

void parse_str(string $str [, array &$arr ])

该函数接收两个参数,$str为需要解析的字符串,而可选参数$arr为解析之后生成的数组值所存放的变量名,如果忽略可选参数,那么可以直接调用类似$id、$category、$title的变量。下面的脚本模拟了GET请求。

<?php
<a href="http://localhost/parse_str.php?id=1&category=php&title=php-install">Click Here</a>
$query_str = $_SERVER['QUERY_STRING'];
parse_str($query_str); /* 这种方式可以直接使用变量$id, $category, $title */
parse_str($query_str, $query_arr);
?>
<pre><?php print_r($query_arr); ?></pre>
<p><?php echo $id; ?></p>
<p><?php echo $category; ?></p>
<p><?php echo $title; ?></p>
?>
/* 运行结果 */
Array
([id] => 1[category] => php[title] => php-install
)
1
php
php-install

http_build_query 就是将一个数组转换成url ?后面的参数字符串,会自动进行urlencode处理

string http_build_query ( array formdata [, string numeric_prefix])

后面的给数组中没有指定键或者键为数字的加下标

官方手册:http://php.net/manual/zh/function.http-build-query.php

转载于:https://my.oschina.net/longhtml/blog/323445

PHP URL处理关键函数parse_url、parse_str与http_build_query相关推荐

  1. PHP中一个好用的函数parse_url

    PHP 中一个好用的函数parse_url,特别方便用来做信息抓取的分析,举例子如下: $url = "http://www.daimajiayuan.com/course/"; ...

  2. url安全处理函数+php,php常用的url处理函数汇总

    这篇文章主要介绍了php常用的url处理函数,实例总结了parse_url.rawurldecode.urlencode.urldecode等一些较为常用的URL处理函数,非常具有实用价值,需要的朋友 ...

  3. php如何定义url,使用自定义函数作为URL规则

    在创建定义URL规则的时候,毕竟系统自带的通配符变量有限,如果发现通配符变量没法满足你的实际需求 我们可以使用自定义函数来做,当然需要有PHP基础的人才行~ 比如我在模块内容的url中想把标题titl ...

  4. 图像轮廓提取关键函数

    一. 关键函数介绍 下面就介绍OpenCV中对图像进行二值化的关键函数--cvThreshold(). 函数功能:采用Canny方法对图像进行边缘检测 函数原型: void cvThreshold( ...

  5. 如何在IDA软件中找到自己需要的目标函数(关键函数)

    这个问题很困扰我们这些初学者 特此记录~~~ 一. 提前要记住IDA的基操~~ 1.shift+F12 查看string信息 (通常可以看到重要的信息 ) 2.Alt + T 查找带有目标字符串的函数 ...

  6. Django 3.2.5博客开发教程:URL与视图函数

    在讲URL与视图函数之前我们先给大家简单介绍一下用户访问网站的流程.我们访问一个网站的时候,一般先打开浏览器,然后在浏览器的地址栏里输入一个网址,也就是URL,然后回车,我们就可以在浏览器里看到这个网 ...

  7. Halcon中OCR的实现及关键函数解析

    OCR的实现共分为两步,1是使用字符数据来训练OCR.2是使用OCR进行字符的识别. 训练分类器 训练分类器共分为4步: 1是使用阈值来分割字符区域: 2是调用append_ocr_trainf函数将 ...

  8. php 中文转成url,php字符转URL地址的函数

    php字符转URL地址的函数 php提供了urlencode().urldecode().rawurlencode().rawurldecode()函数了,利用它就可以直接转换URL地址.下面是小编为 ...

  9. flask第七篇——URL与视图函数的映射

    有兴趣的朋友可以添加微信公众号:自动化测试实战 今天开始就要进入正题了.大家都准备好了吧~ 代码提示 先和大家说个小知识点:有同学后台说输入flask代码pycharm不提示,现在告诉你一个解决方法: ...

最新文章

  1. Android fill_parent、wrap_content和match_parent的区别
  2. mysql 5.1.61_MySQL数据库之将Mysql 5.1.61升级为mysql 5.6.19
  3. C++字符串完全指引之二 —— 字符串封装类
  4. 活动目录系列之十:活动目录数据库的维护
  5. 在Rancher 1.6上部署Traefik负载均衡器
  6. 【代码笔记】iOS-二维码
  7. SQLserver插入\更新中文乱码
  8. K3wise数据字典及常用表及视图
  9. STM32 直流电机 转速比
  10. 通过降低CPU频率 达到降低功耗的目的
  11. 全面复盘Android开发者容易忽视的Backup功能
  12. 【JavaScript】(二)俄罗斯方块
  13. jquery 立体走马灯_jquery实现跑马灯效果(一)
  14. 网络服务——生成树技术STP的BPDU报文详解
  15. Udesk即时通讯网页插件发送咨询对象(一、使用内嵌代码)
  16. mysql源码分析——InnoDB引擎启动分析
  17. 华为疯狂扩招3000名数据分析师,招聘要求让人窒息!
  18. C语言实践——双人五子棋(简易版)
  19. 跑腿小程序系统,同城闪送、帮买帮送
  20. Excel单元格中怎么批量将两行合并成一行

热门文章

  1. Oracle 10g新增DROP DATABASE命令
  2. MongoDB 基本操作增删改查
  3. mysql 与 oracle 的连表update
  4. 使用vagrant基于官方的box制作自己的基础box
  5. 【Kafka】Kafka-数据倾斜问题-参考资料-解决方案
  6. ASP.NET 获取IIS应用程序池的托管管道模式
  7. POJ 1678 I Love this Game!
  8. Ruby系统中的AJAX开发技术简析
  9. 【Flutter学习】组件学习之目录
  10. 064文件方式实现完整的英文词频统计实例