我有產生用openssl底座64 .txt文件,假設該文件的內容是:如何避免file_get_content/fgets/fread分隔我的字符串?
HIK + W9hsOweQdOYx0ngYn + O54lXiDjZvDdzjtBwTI/uhPKF5egIIXnau3535G3wOyZnsI6F3YgokDfc9m6O3UM7MBMqgG5TEqtPdCzSbFq9VUPdJSmznNVQCI207OMku9NNLgehkh/jK2eITpPuh97EQuCW/aJjl0quM07bhWiI =
所有在同一行,但即使是當我從記事本複製並粘貼在這裏,它粘貼像3線:
海康+ W9hsOweQdOYx0ngYn + O54lXiDjZvDdzjtBwTI/uhPKF5egIIXnau3535G3wO yZnsI6F3YgokDfc9m6O3UM7MBMqgG5TEqtPdCzSbFq9VUPdJSmznNVQCI207OMku 9NNLgehkh/jK2eIT pPuh97EQuCW/aJjl0quM07bhWiI =
我一直在試圖通過separing它欺騙的字符串,但不管我嘗試它只是不工作,我已經試了下:
$handle = fopen($file, "r");
$str = "";
while($line = fgets($handle)){
echo $line; <--here i get 3 strings separated by a space characters
$str = $str.$line;
fclose($handle);
echo $str; <--- same 3 strings separated by a space
die;
然後嘗試:
$handle = fopen($file, "r");
$str2 = "";
$str = fread($handle, filesize($file)); <-same result
fclose($handle);
echo substr($str,0,64);
echo substr($str,64,64);
echo substr($str,128); <-same result
$str2 = substr($str,0,64).substr($str,64,64).substr($str,128); <-same result
實際上我第一次嘗試這一塊,因爲這被認爲是獲得文件內容的最簡單的方法:
$str = file_get_contents($file);
$str = str_replace(' ', '', $str);
echo $str; <- same result
試圖用''代替'',並且它不工作,導致我相信即使在.txt文件中只有一個單獨的字符串,base64編碼也會使這些字符串變得特別,最糟糕的是,PHP知道它不能忽略它,但我需要它是1個單一的字符串,任何人都知道發生了什麼,並介意解釋它?我怎樣才能完成獲得1字符串沒有每64個字符的空格?這真讓我抓狂。
因此您正在生成的.txt文件會創建3個獨立的字符串,但是您想要合併他們變成1?你介意分享你用來生成字符串的openssl命令嗎? – KorreyD
不,.txt只有一個字符串,但是當我得到文件的內容時,它會得到3個字符串,即使我直接從記事本複製並粘貼它在這裏它是3字符串,但在記事本中它顯示1字符串,沒有空格,沒有新行,這是命令:openssl base64 -in $ bin -out $ file – Lauro182