我试图拆分这个字符串,只得到“测试”这个词App\Http\Controllers\TestController我想要做的是使用“\”“爆炸”,但我认为该字符会转义引号。我怎样才能使用那个字符?我得到了一个解决方案,但使用了比必要更多的代码行。我知道应该有更好的解决方案。 $path = "App\Http\Controllers\TestController"; $arrayStr = explode("\Test", $path); $word = explode('Controllers', $arrayStr[1]); $correctWord = implode($word); $correctWord = substr($correctWord, 1);我是使用 php 的新手,所以任何建议都不仅仅是惠康。编辑:我忘了指定我想获取 Controller 之前和最后一个 .
3 回答
慕码人8056858
TA贡献1803条经验 获得超6个赞
使用正则表达式查找最后一个反斜杠和单词“Controller”之间的单词
$path = "App\\Http\\Controllers\\TestController";
if( preg_match('~\\\\([^\\\\]+)Controller~', $path, $m) ) {
echo $m[1];
}
else {
echo 'Not found';
}
慕工程0101907
TA贡献1887条经验 获得超5个赞
您遇到的问题是反斜杠转义了分隔符字符串的结束引号。$path_segments = explode("\", $path);
语法错误也是如此。
幸运的是,您还可以转义转义字符。(单引号或双引号的工作方式相同。)
$segments = explode('\\', $path);
然后使用substr
.
$controller = substr(end($segments), 0, -10);
(-10 指的是“控制器”的长度。)
互换的青春
TA贡献1797条经验 获得超6个赞
我建议使用正则表达式来实现这一点;您可以在一行中使用preg_match():
$path = "App\Http\Controllers\TestController";
preg_match('/Test/', $path, $correctWord); // 'test'
这可以在这里看到。
- 3 回答
- 0 关注
- 184 浏览
添加回答
举报
0/150
提交
取消