Php 如果字符串以“开始”;";(菲律宾)

Php 如果字符串以“开始”;";(菲律宾),php,session,Php,Session,如何做到这一点,它将工作?您可以使用 编辑:修复了不正确的函数名(substring()已使用,应为substr())您可以使用以下方法编写一个以开头的: 请注意,为变量赋值时,使用单个=不是最快的方法,但可以使用正则表达式 function startswith($haystack, $needle){ return strpos($haystack, $needle) === 0; } if (startswith($_POST['id'], 'gm')) { $_SES

如何做到这一点,它将工作?

您可以使用


编辑:修复了不正确的函数名(
substring()
已使用,应为
substr()

您可以使用以下方法编写一个以
开头的


请注意,为变量赋值时,使用单个=

不是最快的方法,但可以使用正则表达式

function startswith($haystack, $needle){ 
    return strpos($haystack, $needle) === 0;
}

if (startswith($_POST['id'], 'gm')) {
    $_SESSION['game'] = 'gmod';
}
if (startswith($_POST['id'], 'tf2')) {
    $_SESSION['game'] = 'tf2';
}
if (strpos($_POST['id'], "gm") === 0) {
  $_SESSION['game'] ="gmod"
}
if (strpos($_POST['id'],"tf2") === 0) {
  $_SESSION['game'] ="tf2"
}

您必须用C代码编写一个补丁,添加这个关键字/语法+1。这应该(稍微)比strpos快,因为它在失败时不会遍历整个字符串。@EmilVikström我严重怀疑你关于
substr()
strpos()快的说法。事实上我相信它会慢一点!这是错误的。如果strpos返回false,那么这两个If语句的计算结果都将为true。@andrewtweber:有。将
==
替换为
==
:-P
function begins_with($haystack, $needle) {
    return strpos($haystack, $needle) === 0;
}


if (begins_with($_POST['id'], "gm")) {
    $_SESSION['game']=="gmod"
}

// etc
function startswith($haystack, $needle){ 
    return strpos($haystack, $needle) === 0;
}

if (startswith($_POST['id'], 'gm')) {
    $_SESSION['game'] = 'gmod';
}
if (startswith($_POST['id'], 'tf2')) {
    $_SESSION['game'] = 'tf2';
}
if (strpos($_POST['id'], "gm") === 0) {
  $_SESSION['game'] ="gmod"
}
if (strpos($_POST['id'],"tf2") === 0) {
  $_SESSION['game'] ="tf2"
}
if (preg_match("/^gm/", $_POST['id'])) {
    $_SESSION['game']=="gmod"
}
if (preg_match("/^tf2/, $_POST['id'])) {
    $_SESSION['game']=="tf2"
}