小编Jac*_*iuk的帖子

CakePHP - 如何在更改语言和重新加载路由表后转换当前URL

我正在为每种语言使用不同的路由表,并且我已经编写了更改语言并重定向到同一页面但使用目标语言(和目标URL)的操作.

主要问题是我的行为过于复杂 - 我怎样才能让它变得简单?它应该更改语言并重定向到新的URL(目标语言).

简而言之:我们使用一种语言随机有效的蛋糕网址,我们不得不将其翻译成另一种语言的足够网址.

我的路由表:

if( 'en' == Configure::read('Config.language') ) {
    Router::connect('/help',   array('controller' => 'pages', 'action' => 'display', 'help') );
} else {
    Router::connect('/pomoc',   array('controller' => 'pages', 'action' => 'display', 'help') );
}
Run Code Online (Sandbox Code Playgroud)

改变语言的行动:

function lang($lang) {

    // getting previous url table
    $url = $this->referer();
    $url = Router::parse($url);

    // changing language
    if( in_array($lang, Configure::read('Languages.valid') ) ) {
        $this->Session->write('Language', $lang);
        Configure::write('Config.language', $lang);
    }

    // saving base params
    $requestInfo = array(Router::getParams(), Router::getPaths());
    // reload routing table
    Router::reload();
    include(CONFIGS.'routes.php');
    // restore base …
Run Code Online (Sandbox Code Playgroud)

routing cakephp cakephp-1.3

5
推荐指数
1
解决办法
2563
查看次数

PHP - 从utf8字符串中快速删除浏览器中无法显示的所有字符的快捷方法

我有一个杂乱的数据库,其中包含世界各地许多机构的名称.

我想显示它们,包括国家字符,但没有无效字符 - 在firefox中显示为unicode数字.

如何过滤掉它们?

数据库具有utf8编码,但是某些字符串插入了错误的编码或者源代码中已经混乱.

我不想修复数据库 - 它太大了.我想过滤掉它 - "看不见了"

php regex unicode utf-8 character-encoding

1
推荐指数
1
解决办法
4907
查看次数

在javascript计算中32.48*10 = 324.79999999999995

var quantity = $(this).find('td:eq(2) input').val()*1;
var unitprice = $(this).find('td:eq(3) input').val()*1;
var totaltax = 0;
$(this).find('td:eq(4) input[name^=taxamount]').each(function(){
    totaltax = (totaltax*1)+($(this).val()*1);
});
var subtotal = (unitprice+totaltax);
alert(subtotal+' is unit subtotal, to mulitply by '+quantity);
var total = subtotal*quantity;
$(this).find('td:last').html('$'+total);
Run Code Online (Sandbox Code Playgroud)

在这种情况下,基于我的DOM,结果都是整数(特别是因为我确保我将*1修饰符应用于值以确保它们是数字,而不是字符串).

在这种情况下,这些是在上述代码的前7行内返回的值(并通过警报命令验证)数量:10 unitprice:29 totaltax:3.48 subtotal = 32.48

当我乘以总变量的小计*数量时,总回报:总计:324.79999999999995

所以最后,我得到了td:last满$ 324.79999999999995而不是$ 324.80这更正确.

奇怪,我知道.我在不同的点尝试了各种警报,以确保没有错误等.

javascript jquery dom addition

-1
推荐指数
1
解决办法
396
查看次数