[英]PHP: String to full ASCII
我使用的是RTF轉換器,我需要240
作為&#U050&#U052&#U048
但是我不確定如何做到這一點!
我嘗試使用以下功能:
function string_to_ascii($string) {
$ascii = NULL;
for ($i = 0; $i < strlen($string); $i++) {
$ascii += "&#U"+str_pad(ord($string[$i]),3,"0",STR_PAD_LEFT);
}
return($ascii);
}
但是它仍然只輸出數字(例如2
= 50
),而ord
只會使它發瘋。
我試過了echo "-&#U"+ord("2")+"-";
我得到50416
!?!?
我覺得它可能與編碼有關
我認為您已經考慮過了。 字符串轉換為與陣列str_split
, 地圖 ord
所有的話,那么如果你想每一個,使用格式化sprintf
(或str_pad
如果你喜歡),就像這樣:
function string_to_ascii($string) {
$array = array_map( 'ord', str_split( $string));
// Optional formatting:
foreach( $array as $k => &$v) {
$v = sprintf( "%03d", $v);
}
return "&#U" . implode( "&#U", $array);
}
現在,當您傳遞string_to_ascii( '240')
,您將返回string(18) "&#U050&#U052&#U048"
。
剛發現這個:
function to_ascii($string) {
$ascii_string = '';
foreach (str_split($string) as $char) {
$ascii_string .= '&#' . ord($char) . ';';
}
return $ascii_string;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.