2

文字列の最後から2番目の文字が数値かどうかを確認する方法を知りたいです。

私の文字列は次のとおりです。

$url = 'http://' . $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'];

URL は次のようなものです: http://www.domain.com/2/、http://www.domain.com/3/など..

URL の最後のバック スラッシュの前に数字が存在するかどうかを確認することはできます/か?

何かのようなもの:

if (is_numeric($url, second-to-last-character)) {
   // Do real stuff
} else {
   // Do whatever
}
4

7 に答える 7

4
$fullurl = explode('/',$_SERVER['SCRIPT_NAME']);
$last = $fullurl[count($fullurl)-1];
//echo $last;

if(is_int($last))
echo "integer";
else
echo "Not integer";
于 2013-11-11T14:33:42.523 に答える
4

正規表現はどうですか?

if (!preg_match('#/\d+/?$#', $url))
    // There is no numeric at the end, abort !

ID の桁数がわからないため、最後から 2 番目の文字だけをテストすることはできません。

于 2013-11-11T14:30:13.930 に答える
2

を使用しますsubstr。これを使用して、最後から 2 番目の文字を取得できます。

http://php.net/manual/en/function.substr.php

is_numeric(substr($url, -2, 1);
于 2013-11-11T14:30:59.690 に答える
0
if (is_numeric(substr($url, -2,1) ) {

あなたはすべきです、あなたは正規表現を必要としません

于 2013-11-11T14:31:21.293 に答える
0

使用するsubstr

if(is_numeric(substr($url,-2,1))){
    //dosomething
}else{
   echo "Invalid URL!";
}

ではsubstr、最初のパラメータは文字列、2 番目のパラメータはオフセットです。オフセットが負の場合、最後から開始して後方に移動し、最後のパラメータは長さです。指定しない場合は、文字列の末尾に移動します。したがって、最後の 2 文字を取得したい場合は、次のようにします。substr($url,-2)

于 2013-11-11T14:31:37.370 に答える