首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >"string“!= "string”

"string“!= "string”
EN

Stack Overflow用户
提问于 2010-05-23 23:11:41
回答 4查看 176关注 0票数 0

我正在做一些自己的模板系统。我想改变

代码语言:javascript
复制
<title>{site('title')}</title>

使用参数"title“执行函数"site”。下面是

代码语言:javascript
复制
private function replaceFunc($subject)
{
    foreach($this->func as $t)
    {
        $args = explode(", ", preg_replace('/\{'.$t.'\(\'([a-zA-Z,]+)\'\)\}/', '$1', $subject));
        $subject = preg_replace('/\{'.$t.'\([a-zA-Z,\']+\)\}/', call_user_func_array($t, $args), $subject);
    }
    return $subject;
}

这是一个网站:

代码语言:javascript
复制
function site($what)
{
    global $db;
    $s = $db->askSingle("SELECT * FROM ".DB_PREFIX."config");

    switch($what)
    {
    case 'title':
        return 'Title of page';
        break;
    case 'version':
        return $s->version;
        break;
    case 'themeDir':
        return 'lolmao';
        break;
    default:
        return false;
    } 
}

我试着将标题(在本例中是“$what”)与"title“进行比较。MD5是不同的。strcmp返回-1,"==“和"===”返回false。出什么问题了?($what类型是字符串。您不能将call_user_func_array更改为call_user_func,因为稍后我将使用多个参数)

编辑:

Strlen $what - strlen title 403 -5嘿-看起来我还没把剩下的部分删掉;)

var_dump

字符串(403)“标题”

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-05-23 23:16:55

MD5是不同的。Strcmp返回-1,"==“和"===”返回false。

再加上var_dump()strlen()

此函数适用于特别困难的情况:

代码语言:javascript
复制
function dump(&$str) {
  $i=0;
  while (isset($str[$i])) echo strtoupper(dechex(ord($str[$i++])));
}
票数 2
EN

Stack Overflow用户

发布于 2010-05-23 23:17:26

你有没有试过修剪空格?

代码语言:javascript
复制
$what = trim($what)

可能有一个尾随/开头的空格字符。还要确保它们的大小写相同:

代码语言:javascript
复制
$what = strtolower(trim($what)) //trim and lower
票数 2
EN

Stack Overflow用户

发布于 2010-05-23 23:18:46

您确定没有空格吗?使用trim()来摆脱它们。如果md5s不同,则字符串也不同。var_dump(str_split($what))将逐个字符输出字符串,如果空格不是问题,这可能会有所帮助。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2892250

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档