1. php中的socket只能傳字元串嗎怎麼傳二進制數據
把二進制字元串先轉為byte[] ,接收後再轉回來 byte[] msg = Encoding.Default.GetBytes(你的二進制字元串); socket發送 socket接收byte[] string 你的二進制字元串
2. php接收二進制文件怎麼替換裡面的內容
將文件定位到你存整數/字元串的位置,讀取出來再轉換就行。例如byte[]buf=newbyte[4];fs.Read(buf,0,4);Console.WriteLine(BitConverter.ToInt32(buf));
3. 求教PHP二進制產生隨機數過程中出現的問題
具體步驟如下:
1、隨機生成0-65535范圍內十進制整數,並轉換為二進制字元串;
2、用str_shuffle()函數將二進制字元串變成新的二進制字元串;
3、將新的二進制字元串轉換為十進制的整數,然後將兩個十進制數進行異或運算,得到新的十進制整數;
4,除以65535,轉換成0-1之間的小數;
經過for循環統計,隨機效果很不理想,表現為0-0.1區間比較密集,柱狀圖顯示成遞減分布。
4. PHP代碼中如何找出字元串中指定的字元並轉換為二進制
preg_match_all可以實現查找
decbin可以實現10進制轉2進制
5. PHP關於獲取二進制數據流轉換為文件的方法
$content=$_POST['data'];
$fp=fopen('/tmp/newfile.bin','w');
fwrite($fp,$content);
以上例子是在data參數上傳二進制,並保存到/tmp/newfile.bin中,解析json用json_decode,然後把二進制的那個值賦給content就可以
6. PHP 如何將字元串、數字等轉換為二進制數組
<?php
$data = "PHP";
print_r(unpack("C*",$data));
?>
輸出:
Array
(
[1] => 80
[2] => 72
[3] => 80
)
7. PHP 字元串 二進制
不知道樓主問的是不是php中把字元串轉換成二進制的函數?如果是的話,可以進行如下處理
ASCII(str)
返回字元串str的最左面字元的ASCII代碼值。如果str是空字元串,返回0。如果str是NULL,返回NULL。
ORD(str)
如果字元串str最左面字元是一個多位元組字元,通過以格式((first byte ASCII code)*256+(second byte ASCII code))[*256+third byte ASCII code...]返回字元的ASCII代碼值來返回多位元組字元代碼。如果最左面的字元不是一個多位元組字元。返回與ASCII()函數返回的相同值。
CONV(N,from_base,to_base)
在不同的數字基之間變換數字。返回數字N的字元串數字,從from_base基變換為to_base基,如果任何參數是NULL,返回NULL。參數N解釋為一個整數,但是可以指定為一個整數或一個字元串。最小基是2且最大的基是36。如果to_base是一個負數,N被認為是一個有符號數,否則,N被當作無符號數。 CONV以64位點精度工作。
BIN(N)
返回二進制值N的一個字元串表示,在此N是一個長整數(BIGINT)數字,這等價於CONV(N,10,2)。如果N是NULL,返回NULL。
OCT(N)
返回八進制值N的一個字元串的表示,在此N是一個長整型數字,這等價於CONV(N,10,8)。如果N是NULL,返回NULL。
HEX(N)
返回十六進制值N一個字元串的表示,在此N是一個長整型(BIGINT)數字,這等價於CONV(N,10,16)。如果N是NULL,返回NULL。
CHAR(N,...)
CHAR()將參數解釋為整數並且返回由這些整數的ASCII代碼字元組成的一個字元串。NULL值被跳過。
CONCAT(str1,str2,...)
返回來自於參數連結的字元串。如果任何參數是NULL,返回NULL。可以有超過2個的參數。一個數字參數被變換為等價的字元串形式。
LENGTH(str)
OCTET_LENGTH(str)
CHAR_LENGTH(str)
CHARACTER_LENGTH(str)
返回字元串str的長度。
LOCATE(substr,str)
POSITION(substr IN str)
返回子串substr在字元串str第一個出現的位置,如果substr不是在str裡面,返回0.
LOCATE(substr,str,pos)
返回子串substr在字元串str第一個出現的位置,從位置pos開始。如果substr不是在str裡面,返回0。
INSTR(str,substr)
返回子串substr在字元串str中的第一個出現的位置。這與有2個參數形式的LOCATE()相同,除了參數被顛倒。
LPAD(str,len,padstr)
返回字元串str,左面用字元串padstr填補直到str是len個字元長。
RPAD(str,len,padstr)
返回字元串str,右面用字元串padstr填補直到str是len個字元長。
LEFT(str,len)
返回字元串str的最左面len個字元。
RIGHT(str,len)
返回字元串str的最右面len個字元。
SUBSTRING(str,pos,len)
SUBSTRING(str FROM pos FOR len)
MID(str,pos,len)
從字元串str返回一個len個字元的子串,從位置pos開始。使用FROM的變種形式是ANSI sql92語法。
SUBSTRING(str,pos)
SUBSTRING(str FROM pos)
從字元串str的起始位置pos返回一個子串。
SUBSTRING_INDEX(str,delim,count)
返回從字元串str的第count個出現的分隔符delim之後的子串。如果count是正數,返回最後的分隔符到左邊(從左邊數) 的所有字元。如果count是負數,返回最後的分隔符到右邊的所有字元(從右邊數)。
LTRIM(str)
返回刪除了其前置空格字元的字元串str。
RTRIM(str)
返回刪除了其拖後空格字元的字元串str。
TRIM([[BOTH | LEADING | TRAILING] [remstr] FROM] str)
返回字元串str,其所有remstr前綴或後綴被刪除了。如果沒有修飾符BOTH、LEADING或TRAILING給出,BOTH被假定。如果remstr沒被指定,空格被刪除。
SOUNDEX(str)
返回str的一個同音字元串。聽起來「大致相同」的2個字元串應該有相同的同音字元串。一個「標准」的同音字元串長是4個字元,但是SOUNDEX()函數返回一個任意長的字元串。你可以在結果上使用SUBSTRING()得到一個「標准」的 同音串。所有非數字字母字元在給定的字元串中被忽略。所有在A-Z之外的字元國際字母被當作母音。
SPACE(N)
返回由N個空格字元組成的一個字元串。
REPLACE(str,from_str,to_str)
返回字元串str,其字元串from_str的所有出現由字元串to_str代替。
REPEAT(str,count)
返回由重復countTimes次的字元串str組成的一個字元串。如果count <= 0,返回一個空字元串。如果str或count是NULL,返回NULL。
REVERSE(str)
返回顛倒字元順序的字元串str。
INSERT(str,pos,len,newstr)
返回字元串str,在位置pos起始的子串且len個字元長得子串由字元串newstr代替。
ELT(N,str1,str2,str3,...)
如果N= 1,返回str1,如果N= 2,返回str2,等等。如果N小於1或大於參數個數,返回NULL。ELT()是FIELD()反運算。
FIELD(str,str1,str2,str3,...)
返回str在str1, str2, str3, ...清單的索引。如果str沒找到,返回0。FIELD()是ELT()反運算。
FIND_IN_SET(str,strlist)
如果字元串str在由N子串組成的表strlist之中,返回一個1到N的值。一個字元串表是被「,」分隔的子串組成的一個字元串。如果第一個參數是一個常數字元串並且第二個參數是一種類型為SET的列,FIND_IN_SET()函數被優化而使用位運算!如果str不是在strlist裡面或如果strlist是空字元串,返回0。如果任何一個參數是NULL,返回NULL。如果第一個參數包含一個「,」,該函數將工作不正常。
MAKE_SET(bits,str1,str2,...)
返回一個集合 (包含由「,」字元分隔的子串組成的一個字元串),由相應的位在bits集合中的的字元串組成。str1對應於位0,str2對應位1,等等。在str1, str2, ...中的NULL串不添加到結果中。
EXPORT_SET(bits,on,off,[separator,[number_of_bits]])
返回一個字元串,在這里對於在「bits」中設定每一位,你得到一個「on」字元串,並且對於每個復位(reset)的位,你得到一個「off」字元串。每個字元串用「separator」分隔(預設「,」),並且只有「bits」的「number_of_bits」 (預設64)位被使用。
LCASE(str)
LOWER(str)
返回字元串str,根據當前字元集映射(預設是ISO-8859-1 Latin1)把所有的字元改變成小寫。該函數對多位元組是可靠的。
UCASE(str)
UPPER(str)
返回字元串str,根據當前字元集映射(預設是ISO-8859-1 Latin1)把所有的字元改變成大寫。該函數對多位元組是可靠的。
LOAD_FILE(file_name)
讀入文件並且作為一個字元串返迴文件內容。文件必須在伺服器上,你必須指定到文件的完整路徑名,而且你必須有file許可權。文件必須所有內容都是可讀的並且小於max_allowed_packet。如果文件不存在或由於上面原因之一不能被讀出,函數返回NULL。
另外,MySQL必要時自動變換數字為字元串,並且反過來也如此:
mysql> SELECT 1+"1";
-> 2
mysql> SELECT CONCAT(2,' test');
-> '2 test'
如果你想要明確地變換一個數字到一個字元串,把它作為參數傳遞到CONCAT()。
如果字元串函數提供一個二進制字元串作為參數,結果字元串也是一個二進制字元串。被變換到一個字元串的數字被當作是一個二進制字元串。這僅影響比較。
終於打完了,樓主如果還需要其他解釋請提出來
8. php 怎麼把字元串轉化為二進制流
header("Content-type: text/html; charset=utf-8");
/**
* 將字元串轉換成二進制
* @param type $str
* @return type
*/
function StrToBin($str){
//1.列出每個字元
$arr = preg_split('/(?
//2.unpack字元
foreach($arr as &$v){
$temp = unpack('H*', $v); $v = base_convert($temp[1], 16, 2);
unset($temp);
}
return join(' ',$arr);
}
/**
* 講二進制轉換成字元串
* @par