0

当人们在我的网站上编辑他们的帐户时,他们会感到困惑并认为他们必须输入所有的 Steam 个人资料链接,例如http://steamcommunity.com/id/######当他们必须在文本字段中输入的所有内容是#######,所以如果他们搞砸了,我该如何删除一切都来自他们的输入,除了#####部分?

4

3 回答 3

0
$input = "http://steamcommunity.com/id/herpderp";
$output = '';

if( preg_match(':/:', $input) ) {
    $output = explode('/', $input);
    if( !empty($output[count($output)-1]) {
        $output = $output[count($output)-1];
    } else {
        // in the case of a trailing slash, use the ~second~ last field
        // ie: http://steamcommunity.com/id/herpderp/
        $output = $output[count($output)-2];
    }
} else {
    $output = $input;
}

echo "SteamID: " . $output;

或者简单地说:

if( preg_match('/[^a-zA-Z0-9]/', $input) ) {
    die('Disallowed characters in SteamID. Please enter only your SteamID, and not the full URL.');
}

我更喜欢第二个,因为它让用户来处理他们自己的无能,而不是不得不不断添加代码行来处理用户似乎设计的新的和创新的问题。他们总是努力证明,只要某件事被宣布为“防白痴”,宇宙只会产生一个更好的白痴。

于 2013-01-30T17:45:52.570 回答
0

怎么样:

$lastPart = array_pop(explode('/', $_SERVER['REQUEST_URI']));

这将检索REQUEST_URI.

于 2013-01-30T17:30:40.650 回答
0

str_replace("http://steamcommunity.com/id/","",$input);是一种方式。

更稳健的方法是:

preg_replace("@^.*id/@","",$input);

于 2013-01-30T17:31:22.880 回答