我需要一种方法来获取字符串中特定子字符串之前的最后一个字符。 我需要这个来检查它是否是特定子串之前的空格。
我正在寻找以下功能:
function last_character_before( $before_what , $in_string )
{
$p = strpos( $before_what , $in_string );
// $character_before = somehow get the character before
return $character_before;
}
if( $last_character_before( $keyword , $long_string ) )
{
// Do something
}
else
{
// Do something
}
答案 0 :(得分:2)
如果你有匹配针的位置,你只需要减去-1来获得之前的角色。如果位置为-1或0,则之前没有字符。
function char_before($haystack, $needle) {
// get index of needle
$p = strpos($haystack, $needle);
// needle not found or at the beginning
if($p <= 0) return false;
// get character before needle
return substr($hackstack, $p - 1, 1);
}
实现:
$test1 = 'this is a test';
$test2 = 'is this a test?';
if(char_before($test1, 'is') === ' ') // true
if(char_before($test2, 'is') === ' ') // false
PS。我在战术上拒绝使用正则表达式,因为它们太慢了。
答案 1 :(得分:0)
简单方法:
$string = "finding last charactor before this word!";
$target = ' word';//note the space
if(strpos($string, $target) !== false){
echo "space found ";
}
答案 2 :(得分:0)
function last_character_before( $before_what , $in_string )
{
$p = strpos( $before_what , $in_string );
$character_before = substr(substr($in_string ,0,$p),-1);
return $character_before;
}