-5

我需要一些帮助。

如果我有一个通常是数字的产品 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 } ?>
4

5 回答 5

1
if (preg_match("/[A-Z]+$/", $id)) {

对于以至少一个字母 AZ 结尾的任何字符串,将返回 true。

要寻找特定的东西,你可以说,

if (strlen($id) > 2 && substr($id, -2) == "XD") {
于 2013-08-01T16:09:27.777 回答
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
}
于 2013-08-01T16:16:39.487 回答
0

如果您知道特殊 ID 将始终以“XD”结尾,您可以轻松使用strlensubstr自己编写一个endsWith()函数。在非常非 Python 的 Python 中,它应该看起来像这样(移植到 PHP 留给读者作为练习):

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

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

于 2013-08-01T16:16:40.123 回答
0

你可以说如果长度是五个字符做某事,否则做任何你想做的事情。

编辑:如果您只想查看最后两个字符,您可以检查 length-1 和 length-2 以查看它们是否是字母,如果是,那么您可以执行您想要的操作,否则正常进行。

于 2013-08-01T15:58:41.357 回答
0

好吧,如果带字母的那些是唯一长度为 7 个字符的,你可以在 $ID 上调用一个长度函数,如果

- 编辑

好吧,你说你不想拘泥于长度。因此,您可以调用 length 函数,然后获取数组中的字符(检索数组中的最后一个字符)。然后,您可以将此字符与 ASCII 表进行比较,以查看它是字母还是数字。ASCII 表上的字母从 42 开始,因此如果最后一个字符的 ASCII 码大于 42,则它是一个字母,否则如果必须是一个数字。

于 2013-08-01T16:02:48.090 回答