我需要一点帮助。
如果我的产品ID通常是一个数字,但有几个ID以两个字母结尾。
例如
正常123456 特别123456XD
我只想使用if语句在这些特殊产品页面上显示内容。所以我需要以某种方式说出产品ID是否在XD中结束。
<? if ($id ):?>
<?=display_cms_data(1)?>
<? endif;?>
上面是php代码的开头,如果产品$ id以XD结尾,我该如何询问呢。
提前感谢您的帮助。
Bens答案最适合我的问题:
<? if (strlen($id) > 2 && substr($id, -2) == "XD") { ?>
<?=display_cms_data(1)?>
<?php } ?>
答案 0 :(得分:1)
if (preg_match("/[A-Z]+$/", $id)) {
对于以至少一个字母A-Z结尾的任何字符串,将返回true。
要查找特定的内容,您可以这样做,
if (strlen($id) > 2 && substr($id, -2) == "XD") {
答案 1 :(得分:0)
你可以说,如果长度是五个字符做某事,否则做任何你想做的事情。
编辑:如果你只想查看最后两个字符,你可以检查长度为1和长度为2,看看它们是否是字母,如果它们是你做你想做的,否则正常进行。< / p>
答案 2 :(得分:0)
好吧,如果带字母的那些是唯一长度为7个字符的那个,你可以在$ ID上调用长度函数,如果
- 修改
好的,你说过你不想长篇大论。 因此,您可以调用length函数,然后获取数组中的字符(检索数组中的最后一个字符)。然后,您可以将此字符与ASCII表进行比较,以查看它是字母还是数字。 ASCII表上的字母从42开始,所以如果最后一个字符的ASCII代码大于42,那么如果必须是数字,则为其他字母。
答案 3 :(得分:0)
检查字符串是否以两个[a-zA-Z]字符结尾,无论长度如何。
$id = (string) $id;
if (strlen($id) >= 2 && ctype_alpha(substr($id, -2)) {
//Has two alphabetic chars at the end of the string
} else {
//Doesn't have chars
}
答案 4 :(得分:0)
如果您知道特殊ID将始终以“XD”结尾,则可以轻松使用strlen
和substr
为自己编写endsWith()
函数。在非常非语言的Python中,它应该看起来像这样(移植到PHP留给读者的练习):
def endsWith(fullStr, subStr):
return fullStr[len(fullStr) - len(subStr):] == subStr
但是,如果您希望能够使用任意字母,则可能需要查看正则表达式函数。 /[A-Z]{2,}$/
的正则表达式会告诉您字符串是否以至少2个大写字母结尾。