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

如何使用“\”拆分字符串以及拆分的最佳选项是什么

如何使用“\”拆分字符串以及拆分的最佳选项是什么

PHP
HUX布斯 2021-11-13 19:16:40
我试图拆分这个字符串,只得到“测试”这个词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';

}


查看完整回答
反对 回复 2021-11-13
?
慕工程0101907

TA贡献1887条经验 获得超5个赞

您遇到的问题是反斜杠转义了分隔符字符串的结束引号。$path_segments = explode("\", $path);语法错误也是如此。

幸运的是,您还可以转义转义字符。(单引号或双引号的工作方式相同。)

$segments = explode('\\', $path);

然后使用substr.

$controller = substr(end($segments), 0, -10);

(-10 指的是“控制器”的长度。)


查看完整回答
反对 回复 2021-11-13
?
互换的青春

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

我建议使用正则表达式来实现这一点;您可以在一行中使用preg_match():


$path = "App\Http\Controllers\TestController";

preg_match('/Test/', $path, $correctWord); // 'test'

这可以在这里看到。


查看完整回答
反对 回复 2021-11-13
  • 3 回答
  • 0 关注
  • 167 浏览

添加回答

举报

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