为了账号安全,请及时绑定邮箱和手机立即绑定

如何从字符串的开头和结尾删除某些字符之后的内容?

如何从字符串的开头和结尾删除某些字符之后的内容?

PHP
ABOUTYOU 2023-09-08 21:50:56
我有这个:/opt/lampp/htdocs/website/inn/hemlata993/93/我想删除最后的,所以最后第二个之后的所有内容都/opt/lampp/htdocs应该删除。在上面的例子中应该被删除,因此它将是:///93/website/inn/hemlata993/我尝试这样做:$files = glob($dirName."*.*");for ($i = 0; $i < count($files); $i++) {    $image = $files[$i];    echo $image;    $arr = explode('/opt/lampp/htdocs', $image);    $important = $arr[1];     echo '<img src="'.$important.'" width="100" height="100" alt="Random image" />' . "<br /><br />";}这消除了/opt/lampp/htdocs我想知道如何删除最后一个并将其存储在一个变量中?我尝试使用 substr,但在删除其存储在数组中的第一部分后,我认为我无法这样做。我怎样才能得到/website/inn/hemlata993/?
查看完整描述

2 回答

?
蛊毒传说

TA贡献1895条经验 获得超3个赞

实现此目的的一种方法是使用正则表达式来匹配倒数/opt/lampp/htdocs第二个之后的所有内容(包括倒数第二个)/。例如:


$image = '/opt/lampp/htdocs/website/inn/hemlata993/93/';

$image = preg_replace('#/opt/lampp/htdocs(/.*/)[^/]+/[^/]*$#', '$1', $image);

echo $image;

输出:


/website/inn/hemlata993/

3v4l.org 上的演示


查看完整回答
反对 回复 2023-09-08
?
米琪卡哇伊

TA贡献1998条经验 获得超6个赞

我会寻求一个不依赖于您网站的物理位置的解决方案:


$path = '/opt/lampp/htdocs/website/inn/hemlata993/93/';

if (preg_match('#/website/(.*)/(?=\d+/)#', $path, $matches)) {

  $path = $matches[0];

}

然而,这假设:

  • /website是文件位于服务器文档根目录中的位置,

  • 路径总是以一个或多个数字结尾(最后一个之前/)。

演示


查看完整回答
反对 回复 2023-09-08
  • 2 回答
  • 0 关注
  • 55 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信