Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP如何使用从右边开始的PHP拆分带有2个分隔符的字符串_Php_String_Substring_Delimiter - Fatal编程技术网

PHP如何使用从右边开始的PHP拆分带有2个分隔符的字符串

PHP如何使用从右边开始的PHP拆分带有2个分隔符的字符串,php,string,substring,delimiter,Php,String,Substring,Delimiter,我需要一个字符串分隔符(它是html),我需要提取一个子字符串,但我只有一个左边分隔符的函数: function ddd($str, $sLeft, $sRight) { $pleft = strpos($str, $sLeft, 0); $pright = strpos($str, $sRight, $pleft + strlen($sLeft)); return (substr($str, $pleft + strlen($sLeft), ($pright - ($pleft + strle

我需要一个字符串分隔符(它是html),我需要提取一个子字符串,但我只有一个左边分隔符的函数:

function ddd($str, $sLeft, $sRight)
{
$pleft = strpos($str, $sLeft, 0);
$pright = strpos($str, $sRight, $pleft + strlen($sLeft));
return (substr($str, $pleft + strlen($sLeft), ($pright - ($pleft + strlen($sLeft)))));
}
但我需要从右边($sRight)开始,以$sLeft结束。
谢谢

如果我理解正确,您需要从左边搜索字符串,也可以从右边搜索。如果是这种情况,您可以使用:

PHP

<?php

// Function from php.net, see the link above.
// Starts searching the value from the right side
// of the string, returning the pos
function backwardStrpos($haystack, $needle, $offset = 0){
    $length = strlen($haystack);
    $offset = ($offset > 0)?($length - $offset):abs($offset);
    $pos = strpos(strrev($haystack), strrev($needle), $offset);
    return ($pos === false) ? (false) : ($length - $pos - strlen($needle));
}

$string = 'My string is this, and it is a good dialog';
echo backwardStrpos($string, "i"); // outputs 37
echo strpos($string, "i", 0);      // outputs 6

?>

输出的图示版本:

<?php

$str = '<div><span class="some style bla bla assd dfsdf">ImportantText</span>';

echo strip_tags($str); //outputs: ImportantText

?>


编辑 您刚刚发表了一条与您正试图做的事情相关的评论

您可以使用:

<?php

$str = '<div><span class="some style bla bla assd dfsdf">ImportantText</span>';

echo strip_tags($str); //outputs: ImportantText

?>


编辑 要在HTML标记之间提取文本,请执行以下操作:

<?php

function getTextBetweenTags($string, $tagname) {
    $pattern = "/<$tagname ?.*>(.*)<\/$tagname>/";
    preg_match($pattern, $string, $matches);
    return $matches[1];
}

$str = '<div><span class="some style bla bla assd dfsdf">ImportantText</span>';
$txt = getTextBetweenTags($str, "span");
echo $txt; // outputs: ImportantText

?>

你的问题是什么?如何在右边“分隔符”?试着给出一个输入和所需输出的示例我有:[一些html]ImportantText哇…这样一个模糊的问题…答案可能是“约克郡布丁”,我只需要在我的函数中从右边开始我有更多的文本,但只有一个在,我只需要这个在我的答案末尾看到我的最后一次编辑!通过这个小功能,您可以收集span或任何其他HTML标记之间的文本。