在Laravel中使用特殊语言特定字符生成链接的问题

时间:2015-01-09 07:42:03

标签: php forms laravel-4 special-characters

我现在正在浏览网页和stackoverflow很长一段时间,我似乎找不到正确的答案。我在生成网址时遇到以下问题。我正在将一个项目移到Laravel,一切都应该和以前一样。 基本上问题是,当我使用我的表单添加一个新事件并使用Input::get('name')$_REQUEST['name']捕获输入时,我似乎无法像之前那样捕获字符。 在旧项目中,我抓住了角色,并将它们转换为html实体,如ü,然后在我的网址中,它是üue。我甚至导入了我使用的相同功能,但它们不起作用。这是来自旧项目的输入控制功能,也阻止了SQL注入:

function checkinput($rawstring,$replacespace=0){
        $newstring=str_replace(array("'",chr(34),"â","å","Å","ä","Ä","æ","Æ","è","É","é","ë","ĕ","Ö","ö","ó","ø","Ø","Ü",
                        "ü","ň","ñ","ß","č"),
                    array("'",""","â","å","Å","ä","Ä","æ","Æ","è",
                        "É","é","ë","ĕ","Ö","ö","ó","ø","Ø","Ü",
                        "ü","ň","ñ","ß","č"   ),$rawstring);

    if($replacespace==1){
        $newstring=str_replace(" ", "_", $newstring);
    }
    return $newstring;
}

你能帮我再做一次吗?我看到应该在Laravel配置中的某个位置设置no-entities选项,但我找不到在哪里这样做。提前谢谢!

2 个答案:

答案 0 :(得分:0)

也许你可以改变你的charset页面     

<form method="post" action="/your/url/" accept-charset="UTF-8"></form>

或使用/和     

$string = mb_convert_encoding($_POST["Name"], "ISO-8859-1", "UTF-8");

答案 1 :(得分:0)

为了完成这篇文章,我终于找到了我的问题的答案。实际上并不那么难,如果你知道你在寻找什么: - )

我用htmlentities()php函数解决了它,有一些参数,见下文:

$eventName = htmlentities(($_POST['name']), ENT_QUOTES, "UTF-8");

有了这个,我得到了我的实体,而不是我想要的方式,但至少我得到了它们。 例如,我的ü已转换为&uuml;而不是十六进制值&#252;。我调整了函数,它将字符转换回ue以获取URL,现在一切正常。

感谢您的努力!