2014-10-02 64 views
0

我有一個劇本叫誰在文件中的關鍵,我希望它具有可變包功能整合,但不起作用變量,包功能(「C *」,

=> keyfile.txt

100,102,52,57,49,51,49,51,48,49,101,102,97,99,49,52,57,56,102,57,53,99,99,49,98,97,57,98,51,48,99,99 

集成在php文件

$open = fopen("php\key\keyfile.txt", "r"); 
    $clef=fgets($open,255); 
    $td = mcrypt_module_open('rijndael-128', '', 'ecb', ''); 
    $iv = str_repeat("\x00", 16); 

    $key = pack("C*",$clef); ## **not working** 

    $key = $key . str_repeat("\x00", 32 - strlen($key)); 
    mcrypt_generic_init($td, $key, $iv); 
    $key = mcrypt_generic($td, $key); 
    $key = str_repeat(substr($key, 0, 16), 2); 
    mcrypt_generic_deinit($td); 

我不知道爲什麼 請幫

+4

*如果你說 「PLZ」,因爲它比「please」短,我會說「不」,因爲它比「yes」*短。 - [geowa4](http://stackoverflow.com/users/50214/geowa4)。 – h2ooooooo 2014-10-02 12:19:54

+0

更改完成,對不起! – 2014-10-02 12:56:01

回答

0

PHP認爲像這樣的方式:

$key = pack("C*", "100,102..."); 

的這個代替:

$key = pack("C*", 100,102,...); 

您可以使用call_user_func_array()得到你想要的東西:

$chr = "C*"; 
$int = explode(',', $clef); 

$key = call_user_func_array('pack', array_merge(array($chr), $int)); 
+0

OMG我已經完全僞造這個功能<3你是我的上帝 – 2014-10-02 12:24:38