如果变量的语句以某些字母结尾

时间:2013-08-01 15:56:24

标签: php

我需要一点帮助。

如果我的产品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 } ?>

5 个答案:

答案 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”结尾,则可以轻松使用strlensubstr为自己编写endsWith()函数。在非常非语言的Python中,它应该看起来像这样(移植到PHP留给读者的练习):

def endsWith(fullStr, subStr):
    return fullStr[len(fullStr) - len(subStr):] == subStr

但是,如果您希望能够使用任意字母,则可能需要查看正则表达式函数。 /[A-Z]{2,}$/的正则表达式会告诉您字符串是否以至少2个大写字母结尾。