答えて
これらの関数を使用して、文字列のURLを安全にします。
function base64_url_encode($input) {
return strtr(base64_encode($input), '+/=', '-_,');
}
function base64_url_decode($input) {
return base64_decode(strtr($input, '-_,', '+/='));
}
あなたが関数内でbase64でビルドへのアクセスを持っていないので、私はあなたにこの提案:
<?php
echo bencode("Gabriel Malca");
// R2FicmllbCBNYWxjYQ==
function bencode($string='') {
$binval = convert_binary_str($string);
$final = "";
$start = 0;
while ($start < strlen($binval)) {
if (strlen(substr($binval,$start)) < 6)
$binval .= str_repeat("0",6-strlen(substr($binval,$start)));
$tmp = bindec(substr($binval,$start,6));
if ($tmp < 26)
$final .= chr($tmp+65);
elseif ($tmp > 25 && $tmp < 52)
$final .= chr($tmp+71);
elseif ($tmp == 62)
$final .= "+";
elseif ($tmp == 63)
$final .= "/";
elseif (!$tmp)
$final .= "A";
else
$final .= chr($tmp-4);
$start += 6;
}
if (strlen($final)%4>0)
$final .= str_repeat("=",4-strlen($final)%4);
return $final;
}
function convert_binary_str($string) {
if (strlen($string)<=0) return;
$tmp = decbin(ord($string[0]));
$tmp = str_repeat("0",8-strlen($tmp)).$tmp;
return $tmp.convert_binary_str(substr($string,1));
}
?>
これは唯一正しい答えです。この質問は修正してはいけません。セキュリティ上の理由から、一部のホストでbase64_機能を無効にすることができます。はい、標準的なPHPのインストールにはほとんど手をつけませんが、組み込み関数を無効にする価値があるときがあります。 –
@JohnHunt URL安全でないため、これは正しくありません。 –
@JonGrantそれで 'urlencode'と' urldecode'が存在します。 –
- 1. CrockfordのBase32エンコーディングの従来のASP/VBScript実装
- 2. は、カスタムのMouseDown/touchstart実装
- 3. カスタム実装::ベクトル
- 4. カスタムEhCacheの実装
- 5. カスタムUINavigationControllerの実装
- 6. カスタムComparableBindingの実装
- 7. カスタムSessionIDManagerの実装
- 8. MSPのカスタム実装
- 9. phpunitを使ったカスタムsetcookieの実装
- 10. カスタムpyqtシグナル実装
- 11. カスタムApplicationContext実装のスプリングブートアプリケーション
- 12. カスタムLINQスタイルの実装
- 13. カスタム検索の実装
- 14. カスタム列ソートの実装
- 15. カスタム移動の実装
- 16. Eclipselink:CRUD操作のカスタム実装
- 17. ASP.NET IDのカスタム実装
- 18. ExtjsカスタムTriggerFieldの実装
- 19. カスタム認証(MVC5)の実装
- 20. カスタムQIODeviceを実装したQImageReader
- 21. ASP.NETリピータコントロールまたはカスタム実装ですか?
- 22. Shopifyカスタム決済ゲートウェイ実装
- 23. Amazon sqsとカスタム実装
- 24. カスタムJsonStoreとテンプレート実装ExtJs
- 25. カスタムを実装しています.addAll()
- 26. カスタムFilterReaderを実装する方法は?
- 27. ユーザーコントロール内のカスタム "パス"プロパティの実装
- 28. Service FabricのカスタムConfigurationSectionの実装
- 29. ScalaでのカスタムSortedMapの実装
- 30. saxon 97でのカスタムnodeinfoの実装 - HE
なぜhttp://php.net/manual/fr/function.base64-encodeを。 PHP? –
そして、http://php.net/base_convert - マニュアルのどこにいてもすべてのメモをdum-te-dumにあります。 – hakre
**カスタム**実装が必要なのはなぜですか? –