2009-02-26 15 views
22

मैं php में एक स्ट्रिंग है, इस तरह एक पाठ फ़ाइल के लिए बाहर प्रिंट है कहते हैं:मैं PHP में स्ट्रिंग के बाइट मान कैसे प्राप्त करूं?

nÖ§9q1Fª £

मैं कैसे फंकी ascii बजाय मेरे पाठ फ़ाइल को यह की बाइट कोड मिलता है वर्ण?

उत्तर

22

ord समारोह

http://ca.php.net/ord

जैसे प्रयोग करें।

<?php 
$var = "nÖ§9q1Fª£ˆæÓ§Œ_»—Ló]j"; 

for($i = 0; $i < strlen($var); $i++) 
{ 
    echo ord($var[$i])."<br/>"; 
} 
?> 
+1

@YzmirRamirez: बाइट्स दिखाने के लिए आपको बाइट लंबाई की आवश्यकता है, चरित्र की लंबाई नहीं, इसलिए 'mb_strlen' का उपयोग वास्तव में बग है। – Ped7g

+0

आप सही @ Ped7g हैं। मैं आम तौर पर एमबी_ कार्यों का उपयोग करता हूं और ऊपर स्ट्रेल कॉल देखता हूं। लेकिन बेहतर जवाब नीचे है जो लूप के लिए आवश्यक नहीं है। –

3

Ord() एक ASCII-चारसेट साथ काम कर देता है। यदि आप, मल्टीबाइट तारों (जैसे यूटीएफ -8) के साथ हस्तक्षेप करते हैं, तो आप भाग्य से बाहर हैं, और इसे स्वयं को हैक करने की आवश्यकता है।

4

आप हेक्स मान बारे में बात कर रहे हैं, तो यह आपके लिए क्या करना चाहिए:

$value = unpack('H*', "Stack"); 
echo $value[1]; 

Reference

+0

यह एक अच्छा जवाब है; 'for' loops और व्यक्तिगत पात्रों के साथ झुकाव से काफी बेहतर है। – miken32

19

आप पूर्णांक कोड की एक सरणी के रूप में स्ट्रिंग प्राप्त करना चाहते हैं, वहाँ एक अच्छा एक- है लाइनर:

unpack('C*', $string) 

सावधान रहें, परिणामी सरणी 1 से अनुक्रमित है, 0 से नहीं!

+0

+1 - _exactly_ मुझे क्या चाहिए – Hobo

संबंधित मुद्दे