PHP中是否存在編碼函數,它將對字符串進行編碼,結果輸出只包含字母和數字?我會使用base64,但仍然有一些東西不是數字/字母數字PHP編碼僅包含字母和數字
回答
您可以使用base32(代碼易於谷歌),這是一種標準的替代base64。或者使用bin2hex()和pack("H*",$hex)
進行反轉。然而,十六進制編碼會導致尺寸加倍。
(但如果它的任何重要大小,並開始作爲文字,你可以先壓縮它!) – symcbean 2010-10-29 08:48:32
謝謝你,一個直接的答案! – cappuccino 2010-10-29 08:55:53
任何散列函數(md5,sha1等)輸出將只包含十六進制數字,但這不完全是「編碼」。
不想散列,因爲它需要可恢復。 – cappuccino 2010-10-29 08:18:46
我知道這是一個額外的步驟,但是當您需要恢復APC緩存的密鑰時,您不能再次散列該字符串嗎? – 2010-10-29 08:41:51
爲什麼APC密鑰需要恢復?這是一個緩存,使用單向編碼獲取對我來說似乎相當不錯? – Wrikken 2010-10-29 08:50:10
您可以使用a-z/A-Z/0-9編寫自己的base-62編碼器/解碼器。儘管每個ASCII字符都需要3位數字,但效率並不高。
他爲什麼需要3位數字?當然2就足夠了。 – Hammerite 2010-10-29 09:05:05
我對此感到困惑,但我認爲你是對的。 – 2010-10-29 17:10:26
我寫了這個用字母,數字及破折號。
我敢肯定,你可以提高它取出破折號:
function pj_code($str) {
$len = strlen($str);
while ($len--) {
$enc .= base_convert(ord(substr($str,$len,1)),10,36) . '-';
}
return $enc;
}
function pj_decode($str) {
$ords = explode('-',$str);
$c = count($ords);
while ($c--) {
$dec .= chr(base_convert($ords[$c],36,10));
}
return $dec;
}
- 1. 編碼的Python爲*僅*字母數字
- 2. 的.htaccess僅重寫,如果路徑包含數字和字母
- 3. 文本框僅包含字母,數字和空格
- 4. 加載包含數字和字母2
- 5. 檢查NSString包含字母和數字
- 6. 加載包含數字和字母
- 7. 檢查密碼包含字母,數字和特殊字符
- 8. 在包含字母和數字的字段中捕獲字母
- 9. 如何僅返回包含數字和字母的列中的數字?
- 10. 僅提取包含子串字母
- 11. 代碼VB6.0認識標識符包含字母和數字
- 12. 生成包含數字和字母的隨機密碼
- 13. 檢查字符串是否僅包含英文字母,數字和符號
- 14. 正則表達式匹配只包含字母和數字的字母數字
- 15. PHP檢查字符串是否包含一些字母/數字
- 16. JQuery - 確認密碼包含非字母數字字符
- 17. 按字母順序和數字排序郵政編碼PHP
- 18. NSPredicate包含在包含數字和字母的字符串中搜索
- 19. 潛在危險的Request.Path值....僅包含字母數字和下劃線?
- 20. 返回sql行where字段僅包含非字母數字字符
- 21. 如何編寫包含字母數字和特殊字符的輸入匹配
- 22. 計算包含「JJ編號」和「JJ字母表」的項目數
- 23. PHP getenv HTTP_X_FORWARDED_FOR包含字母表
- 24. 由包含數字和字母的字段排序
- 25. 檢查一個字符串是否包含數字和字母
- 26. 分開字包含字母和數字分爲兩個部分
- 27. 驗證密碼包含字母
- 28. PHP:檢查我的字符串僅包含數字和「X」字符
- 29. 排序數組包含數字和字母
- 30. 搜索數值包含字母和數字值 - VBA的Excel
這是什麼呢?我認爲這可能是一個具體的答案。 – MatTheCat 2010-10-29 08:08:02
前段時間我問了一個類似的問題:[編碼任意數據爲數字?](http://stackoverflow.com/questions/2982112/encoding-arbitrary-data-into-numbers)我還沒有時間去測試答案,但@ Artefacto的外觀很好 – 2010-10-29 08:08:18
使用ord()將所有字符轉換爲它們的ASCII碼? – Mchl 2010-10-29 08:15:21