Ben bu javascript fonksiyon PHP Nasıl dönüştürebilirsiniz?

1 Cevap php
function escCtrlChars(str) 
{ 
    return str.replace(/[\0\t\n\v\f\r\xa0'"!-]/g, 
             function(c) { 
                 return '!' + c.charCodeAt(0) + '!'; 
    });
}

Tamam bu başka bir dize başlayan ve ! ile biten bir dize denetim karakterleri değiştirir bir işlevdir

My question is. Is c the character found while going through str?
If so how can you mimic this function in PHP.?

function escCtrlChars($str)
{
    return preg_replace('/[\0\t\n\v\f\r\'\"!-]/i', "!".ord($str[0])."!", $str);
}

PHP bu vardı ama (o dize kullanır ve karakter yok çünkü) şimdi bunun yanlış olduğunu fark

1 Cevap

Deneyin:

function escCtrlChars($str)
{
    return preg_replace('/([\0\t\n\v\f\r\'\"!-])/ie', '"!".ord(substr("$1",0,1))."!"', $str);
}

E değiştirici ikinci argüman kod idam edilmesi gerektiğini belirtir. Bu temelde her değiştirilmesi için çalıştırılan create_function kullanarak yeni bir işlev () oluşturarak yapılır. Ayrıca desen yakalamak için parantez eklemek zorunda.

Bu gibi kullanarak:

$str = "foo\n\t'bar baz \rquux";
echo escCtrlChars($str)."\n";

Verim:

foo!10!!9!!92!bar baz !13!quux