当前位置: 首页 > 面试题库 >

如何在PHP中的两个字符串之间获取子字符串?

龚盛
2023-03-14
问题内容

想要改善这篇文章吗? 提供此问题的详细答案,包括引文和为什么答案正确的解释。答案不够详细的答案可能会被编辑或删除。

我需要一个函数来返回两个单词(或两个字符)之间的子字符串。我想知道是否有实现该功能的php函数。我不想考虑正则表达式(嗯,我可以做一个,但实际上并不认为这是最好的方法)。思维strpossubstr功能。这是一个例子:

$string = "foo I wanna a cake foo";

我们调用该函数:$substring = getInnerSubstring($string,"foo");
它返回:“我想要一个蛋糕”。

提前致谢。

更新:
嗯,到目前为止,我只能在一个字符串中得到两个单词之间的一个子字符串,您允许我走得更远,问我是否可以扩展使用getInnerSubstring($str,$delim)以获得介于delim值之间的任何字符串,例:

$string =" foo I like php foo, but foo I also like asp foo, foo I feel hero  foo";

我得到一个像这样的数组{"I like php", "I also like asp", "I feel hero"}


问题答案:

如果字符串不同(即[foo]和[/ foo]),请查看Justin Cook的这篇文章。我在下面复制他的代码:

function get_string_between($string, $start, $end){
    $string = ' ' . $string;
    $ini = strpos($string, $start);
    if ($ini == 0) return '';
    $ini += strlen($start);
    $len = strpos($string, $end, $ini) - $ini;
    return substr($string, $ini, $len);
}

$fullstring = 'this is my [tag]dog[/tag]';
$parsed = get_string_between($fullstring, '[tag]', '[/tag]');

echo $parsed; // (result = dog)


 类似资料:
  • 问题内容: 我需要从两个字符之间获取字符串。我有这个 并且必须在一个变量中分别返回4个字符串: 问题答案: 有。由于它接受正则表达式字符串,并且是正则表达式中的特殊字符,因此您需要对其进行转义(带有反斜杠)。而且,由于是在Java中字符串字面特殊字符,你需要逃脱 它 ,也一样,人们有时会感到迷惑。因此给出: 然后 将输出 ( 在 前三位上 有 尾随空格;如果需要,这些空格。)

  • 问题内容: 我从html解析中得到一个字符串,即 我的代码是这样的 我不确定我的第二个拆分字符串应该是“’”还是“’,” 我希望我的结果是 问题答案: 我将使用正则表达式从这样的复杂输入中提取子字符串。 Swift 3.1: Swift 2.0:

  • 问题内容: 我试图从一个较大的字符串中提取一个字符串,使它在’:’和’;’之间得到一切。 当前 期望的输出 问题答案: 你可以试试这个

  • 问题内容: 什么是获取两个字符串之间内容的最佳方法,例如 由于某种原因,这似乎在我的代码中的一个地方起作用,而不是另一个地方。我会以正确的方式解决这个问题吗?或者,还有更好的方法? 输出缓冲区也是这样做的方法还是file_get_contents? 提前致谢! 问题答案: 使用代替,这样您就不必逃避它们。 该修改 品牌和还包括换行。 并具有各种功能,例如的n到m倍。 基础的 各种标签等的高级(Ja

  • 问题内容: 我尝试获取<%=和%>之间的字符串,这是我的实现: 它返回 但我的期望是: 我在哪里错了以及如何纠正它? 问题答案: 您的模式很好。但是,您不应该轻信它,应该这样做。以下代码提供了您正在寻找的输出:

  • 问题内容: 我有以下测试(格式如下): 我正在尝试获取“测试部分:”和“我的部分”之后的文本 我用不同的RegEx模式进行了几次尝试,但结果一无所获。 如果我做: 然后,我得到正确的答复: 但是,如果我这样做 我没有结果。结果应为“我的第二 部分 ” 我也尝试过使用RegEx Multiline,但没有结果。 任何帮助,将不胜感激。 如果重要的话,我正在Python 2.7中进行编码。 如果不清楚