如何使用PHP截取字符串?提取URL指定路径参数片段
在PHP中提取URL指定片段的方法
没问题,这就教你两种实用的PHP方法来提取你需要的URL片段:
方法一:用parse_url规范解析URL
这种方法通过拆分URL的各个组成部分,再拼接出目标内容,适合各种复杂URL场景,容错性更强:
$url = 'https://test-app.com/admin/api/2019-10/orders.json?limit=2&page_info=eyJpZHMiOiIyMDY3MTczMTEzOTg3LDIwNjU0ODU0MzA5MTUsMjA2NTQ3OTI3MDUzMSwyMDYyODE3MzI5MjgzIiwibGFzdF9pZCI6MjA2NTQ4NTQzMDkxNSwibGFzdF92YWx1ZSI6IjIwMjAtMDMtMTcgMTg6MTc6NTkiLCJkaXJlY3Rpb24iOiJuZXh0In0'; // 把URL拆解成包含路径、查询参数等的数组 $urlComponents = parse_url($url); // 拆分路径,取出最后一段(也就是orders.json) $pathSegments = explode('/', $urlComponents['path']); $targetFileName = end($pathSegments); // 拼接文件名和查询参数(如果存在的话) $extractedContent = $targetFileName; if (!empty($urlComponents['query'])) { $extractedContent .= '?' . $urlComponents['query']; } // 输出结果 echo $extractedContent;
方法二:直接截取字符串(简单高效)
如果你的URL结构固定,确定目标内容是最后一个斜杠/之后的所有内容,直接用字符串截取会更简单:
$url = 'https://test-app.com/admin/api/2019-10/orders.json?limit=2&page_info=eyJpZHMiOiIyMDY3MTczMTEzOTg3LDIwNjU0ODU0MzA5MTUsMjA2NTQ4NTQzMDkxNSwibGFzdF92YWx1ZSI6IjIwMjAtMDMtMTcgMTg6MTc6NTkiLCJkaXJlY3Rpb24iOiJuZXh0In0'; // 找到最后一个斜杠的位置 $lastSlashPosition = strrpos($url, '/'); // 截取从斜杠之后到结尾的所有内容 $extractedContent = substr($url, $lastSlashPosition + 1); // 输出结果 echo $extractedContent;
两种方法都能得到你需要的结果,你可以根据自己的实际场景选择:如果URL可能有各种变化,优先用方法一;如果结构固定,方法二更高效。
内容的提问来源于stack exchange,提问作者Mikel
相关产品推荐
相关产品推荐

