前言
今天遇到了一个小问题,虽然比较简单,但还是记录一下解决过程 函数使用可以看官方介绍,调用的函数都是php内置的 估计有更方便的方法,不过暂时没想到的┌( ′_ゝ` )┐
PHP: stristr - Manual
PHP: strstr - Manual
PHP: strlen - Manual
PHP: substr - Manual
PHP: stripos - Manual
一、问题
需要处理一段url ,只知道两个东西 一个东西是整串url ,是可以通过其他方式获取的
还有一个是url 中必定含有某个字符串A ,必定含有的原因是因为我前面写了if 语句判断过了 需要将字符串A 之后的内容删除掉,并保留剩下的内容
二、方法
假设已知的是http://xxx/xxx/index.php/xxx/xx 和里面的index.php ,其中的xxx 长度、个数和字符都是未知的 需要得到的结果是http://xxx/xxx/index.php
第一种方法较复杂点,先获取http://xxx/xxx/index.php/xxx 、index.php 和index.php/xxx 的长度 然后通过这三个长度得到http://xxx/xxx/index.php 的长度 最后通过substr 函数来截取子串
第二种方法: 之后查官方手册的时候又发现了一个函数stripos ,可以省去一次stristr 和strlen 函数的使用 先通过stripos 获取http://xxx/xxx/ 的长度,然后再加上index.php 的长度就可以了 其他的部分和第一种方法是一样的
三、代码
index.php 可以替换成自己所需要的变量或字符串
<?php
$url = "http://xxx/xxx/index.php/demo/12";
$len = strlen($url) - strlen(stristr($url,"index.php")) + strlen("index.php");
echo substr($url,0,$len);
echo "<br>";
echo substr($url,0,stripos($url,"index.php") + strlen("index.php"));
?>
|