在PHP中使用()和endWith()函数开始

时间:2014-11-05 18:51:59

标签: php string

我如何编写两个带字符串的函数,如果它以指定的字符/字符串开头或以它结尾,则返回?

例如:

$str = '|Rajdeep}';

echo beginWith($str, '|'); //Returns true
echo endWith($str, '}'); //Returns true

我试过这个

function beginWith($haystack, $needle, $case = true) {
if ($case) {
    return (strcmp(substr($haystack, 0, strlen($needle)), $needle) === 0);
}
return (strcasecmp(substr($haystack, 0, strlen($needle)), $needle) === 0);

}

function endWith($haystack, $needle, $case = true) {
if ($case) {
    return (strcmp(substr($haystack, strlen($haystack) - strlen($needle)), $needle) === 0);
}
return (strcasecmp(substr($haystack, strlen($haystack) - strlen($needle)), $needle) === 0);
}

有没有最好的解决方案

2 个答案:

答案 0 :(得分:2)

function beginsWith($string, $char) {
    return $string[0] === $char;
}

function endWith($string, $char) {
    return $string[strlen($string)-1] === $char;
}

$str = '|Rajdeep}';

var_dump(beginsWith($str, '|')); 
var_dump(endWith($str, '}'));
var_dump(beginsWith($str, 'a')); 
var_dump(endWith($str, 'j'));

bool(true)
bool(true)
bool(false)
bool(false)

答案 1 :(得分:0)

function beginWith($myString, $giveChar)
 {
return $giveChar=== "" || strpos($myString, $giveChar) === 0;
 }
 function endWith($myString, $giveChar)
 {
return $giveChar=== "" || substr($myString, -strlen($giveChar)) === $giveChar;
 }