質問
私は、任意の改行が含まれていないペースト可能な圧縮された文字列をコピーし、短いバージョンに任意の文字列を圧縮しようとしています。
私はgzcompressを試してみましたが、その後、/別のPHPスクリプトに結果を貼り付けてgzuncompressしようとしてコピーすると、「警告:gzuncompress():データエラー」スロー
をの文字列を圧縮し、任意のネイティブPHPの関数があり、その結果は、改行せずに文字列のですか?
感謝します。
解決
あなたはBASE64_ENCODE / BASE64_DECODEを試みることができます。あなたはカット&ペーストのためのバイナリに圧縮している場合は、私はあなたが最初にそれをエンコードBASE64お勧めします。
他のヒント
あなたは、圧縮した後、あなたの改行をエスケープすることができます。 )解凍し、改行で知られている2つの文字のペアを交換し、(gzuncompressを実行するには...
実際に、あなたは2個の置換を実行する必要があります。私は英語(ない私の母国語)でこれを表現することができないので、ここでの例です:「+ n」のは、改行をエスケープするために使用します。それは「N」が続いている場合は解凍時に誤って改行に置き換えられますので、あなたはまず、一人で立っている「+」のすべてをエスケープする必要があります。さんが選んだ聞かせて「++」「+をエスケープするために。その後、「+ N」で改行を置き換えます。解凍するとき、改行によってペアごとに取って代わる「+ n」の場合は、すべての「++」「+」によってペア。それはそれだ!
これは、常に入力よりも短い出力を生成し、一般的な圧縮アルゴリズムを設計することは不可能です。あなたは常に入力よりも出力の短絡をしたいのであれば、あなたはあなたのアルゴリズムは何ができるかを制限する開始する必要があります。あなたは、文字入力(長い)文字列で許容されているかについて考える必要があり、そしてその文字は、出力(短い)文字列で許容されています。あなたはこれらの良いアイデアを持っていたら、あなたはあなたのオプションが何であるかを作業を開始することができます。