Php 字符串搜索和拆分

Php 字符串搜索和拆分,php,html,Php,Html,所以我有下面的字符串 /home/design/Baie/Design-Interior-Baie-019.jpg 现在有没有一种方法可以搜索单词Baie并返回如下字符串: /home/design/Baie/ 我正在尝试构建一个面包屑,您可以使用dirname返回您要查找的内容 echo dirname'/home/design/Baie/design-Interior-Baie-019.jpg'; 或PHP $abcd = "/home/design/Baie/Design-Interi

所以我有下面的字符串

/home/design/Baie/Design-Interior-Baie-019.jpg
现在有没有一种方法可以搜索单词Baie并返回如下字符串:

/home/design/Baie/
我正在尝试构建一个面包屑,您可以使用dirname返回您要查找的内容

echo dirname'/home/design/Baie/design-Interior-Baie-019.jpg'; 或PHP

$abcd = "/home/design/Baie/Design-Interior-Baie-019.jpg";
$xyz = explode('Design', $abcd);
print_r($xyz)

在PHP中,假设面包屑在路径中第一次出现Baie时结束:

$search = "Baie" ;
$path = "/home/design/Baie/Design-Interior-Baie-019.jpg" ;
$breadcrumb = substr($path, 0, stripos($path, $search . "/")+strlen($search)+1 );
print $breadcrumb ;
使用函数

dirname('/home/design/Baie/Design-Interior-Baie-019.jpg');
或者你也可以试试

<?php

$word = 'Baie'; 

$string = "/home/design/Baie/Design-Interior-Baie-019.jpg";

$bread =  explode( "$word", $string);

echo $bread[0]."/$word/";

?>

在带有indexOf和slice的JavaScript中:

var str = "/home/design/Baie/Design-Interior-Baie-019.jpg";
var search = "Baie"
if (str.indexOf(search) != -1 )
   var result = str.slice(0,str.indexOf(search)+search.length+1);
console.log(result); // /home/design/Baie/
正则表达式呢

<?php
$array=[];
$path="/home/design/Baie/Design-Interior-Baie-019.jpg"
$pattern = "#^(.*/Baie)/.*$#";
preg_match($pattern,$path, $matchx);
echo $match[1];
?>

如果希望第一次出现,请使用:

$path = "/home/design/Baie/Design-Interior-Baie-019.jpg";
$find = "Baie";

$pos = strpos($path,$find);
然后,要获得前半部分,可以使用substr:

$newstr = substr($path, 0, $pos + strlen($find));

echo $newstr;
这将导致:

/home/design/Baie
另见:


您是否总是想要搜索的单词的第一个实例?e、 在本例中,g.Baie在字符串中出现两次。此外,您是否只想在分隔符/word/之间匹配整个单词,或仅匹配单词的任何实例?您可以使用explode“Baie”、“/home/design/Baie/design-Interior-Baie-019.jpg”[0]作为示例,我认为我的解决方案会起作用,但你需要更具体一些才能得到一个好的答案。你是在寻找JavaScript还是PHP的解决方案?很抱歉,我在中有js标记,我需要使用PHP回答phpI的问题。你也可以试一下,将dirname保留最后一个/?你应该解释你的代码。仅仅在没有任何解释的情况下将一些代码塞进一个答案,对OP或本期的任何未来观众都没有帮助。
$newstr = substr($path, 0, $pos + strlen($find));

echo $newstr;
/home/design/Baie