① php 字元串中取整數 如: $str='12|字元串'; 從$str中去前面的12出來.
<?php
$str='12|字元串';
echo (int)$str;
//輸出 12
如果你喜歡正則來解的
<?php
$str='12|字元串';
echo preg_replace('/(\d+).*/','\\1',$str);
② 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()。
如果字元串函數提供一個二進制字元串作為參數,結果字元串也是一個二進制字元串。被變換到一個字元串的數字被當作是一個二進制字元串。這僅影響比較。
終於打完了,樓主如果還需要其他解釋請提出來
③ 關於php 時間戳只能到 2037年的問題,這是不是php的bug,大家有解決方法嗎
mktime
(PHP 3, PHP 4, PHP 5)
mktime -- 取得一個日期的 Unix 時間戳
說明
int mktime ( [int hour [, int minute [, int second [, int month [, int day [, int year [, int is_dst]]]]]]] )
根據給出的參數返回 Unix 時間戳。時間戳是一個長整數,包含了從 Unix 紀元(January 1 1970 00:00:00 GMT)到給定時間的秒數
year
年份數,可以是兩位或四位數字,0-69 對應於 2000-2069,70-100 對應於 1970-2000。在如今系統中普遍把 time_t 作為一個 32 位有符號整數的情況下,year 的合法范圍是 1901 到 2038 之間,不過此控制自 PHP 5.1.0 起已被克服了。
如果在你本地上測試不能超過2037/38的話,那可能和硬體以及操作系統有關,我在UNIX伺服器上測試是沒有這個限制的,所以不必擔心這個問題。
-----------------------------------
關於2003系統,我沒環境做測試,所以不好說。但在我的伺服器(Linux Ubuntu)上測試是沒問題的。
④ php長整型怎麼表示
php沒有長整型 你要用就用string來表示。PHP是弱類型語言,不要在類型上要求
⑤ php 中整數型自動補零且不能為空怎麼設置
在php中有兩個函數——至少有兩個是否有其他的我還不知道,能夠實現數字補零,str_pad(),sprintf()詳細如下
str_pad
顧名思義這個函數是針對字元串來說的這個可以對指定的字元串填補任何其它的字元串
例如:str_pad(帶填補的字元串,填補後的長度,填補字元串,填補位置)
其中填補後的長度必須是個正整數,填補位置有三個選項,
左邊:STR_PAD_LEFT,
右邊:STR_PAD_RIGHT,
兩端:STR_PAD_BOTH
例如:
echo str_pad(1,8,」0″,STR_PAD_LEFT);
結果:00000001
echo str_pad(1,8,」0″,STR_PAD_RIGHT);
結果:10000000
echo str_pad(1,8,」0″,STR_PAD_BOTH);
結果:00010000
在上邊的例子中值得注意的一個細節是,如果填補的位數是個奇數,例如例三中填補了7個0,右邊優先。
再看補零的另外一種方法sprintf
這個函數學過c的都十分了解它,呵呵……
不過咱不說這么多,因為用起來實在太靈活了,以至於我基本不會用,不過在左邊補零(或者在小數點後補零)用起來還是很方便的
先看左邊補零
echo sprintf(」%05d」,1);
先說%05d的意思,用一個5位數的數字格式化後邊的參數,如果不足5位就補零
運行結果是00005
再看小數點後補零
echo sprintf(」%01.3f」,1);
%01.3f的意思是說,用一個小數點後最少三位不足三位補零,小數點前最少一位,不足一位補零的浮點數格式化後邊的參數
其運行結果是:1.000
⑥ php中get_magic_quotes_runtime()函數作用是什麼
取得 PHP 環境變數 magic_quotes_runtime 的值。
語法: long get_magic_quotes_runtime(void);
返回值: 長整數
函數種類: PHP 系統功能
內容說明
本函數取得 PHP 環境配置的變數 magic_quotes_runtime 值。返回 0 表示關閉本功能;返回 1 表示本功能打開。若 magic_quotes_runtime 打開時,所有外部引入的資料庫資料或者文件等等都會自動轉為含有反斜線溢出字元的資料。
建議樓主多看看php的手冊
⑦ php 時間數字轉換時間戳
mktime( 小時, 分鍾, 秒, 月, 日, 年 );
2012年05月25日23點45分16秒
mktime( 23, 45, 16, 5, 25, 2012 );
$timeStr = '20120525234516';
$hour = substr( $timeStr, 8, 2); //在第8位(從0開始)後取2位
$minute = substr( $timeStr, 10, 2);
$second= substr( $timeStr, 12, 2);
$year= substr( $timeStr, 0, 4);
$month= substr( $timeStr, 4, 2);
$day = substr( $timeStr, 6, 2);
mktime( $hour, $minute, $second, $month, $day, $month );
----以---下---是---手---冊---內---的---內---容---選---看-----
取得一個日期的 Unix 時間戳,如果參數非法,本函數返回 FALSE(在 PHP 5.1 之前返回 -1)。
mktime ( [int hour [, int minute [, int second [, int month [, int day [, int year [, int is_dst]]]]]]] )
根據給出的參數返回 Unix 時間戳。時間戳是一個長整數,包含了從 Unix 紀元(January 1 1970 00:00:00 GMT)到給定時間的秒數。
參數可以從右向左省略,任何省略的參數會被設置成本地日期和時間的當前值。
參數
hour
小時數。
minute
分鍾數。
second
秒數(一分鍾之內)。
month
月份數。
day
天數。
year
年份數,可以是兩位或四位數字,0-69 對應於 2000-2069,70-100 對應於 1970-2000。在如今系統中普遍把 time_t 作為一個 32 位有符號整數的情況下,year 的合法范圍是 1901 到 2038 之間,不過此限制自 PHP 5.1.0 起已被克服了。
is_dst
本參數可以設為 1,表示正處於夏時制時間(DST),0 表示不是夏時制,或者 -1(默認值)表示不知道是否是夏時制。如果未知,PHP 會嘗試自己搞明白。這可能產生不可預知(但並非不正確)的結果。如果 PHP 運行的系統中啟用了 DST 或者 is_dst 設為 1,某些時間是無效的。例如 DST 自 2:00 生效,則所有處於 2:00 到 3:00 之間的時間都無效,mktime() 會返回一個未定義(通常為負)的值。某些系統(例如 Solaris 8)的 DST 在午夜生效,則 DST 生效當天的 0:30 會被計算為前一天的 23:30。
注意: 自 PHP 5.1.0 起,本參數已被廢棄。應該使用新的時區處理特性來替代。
⑧ php 怎麼判斷字元串是不是數字
用正則表達式判斷
<?php
$num="000, 025.00,000.25";
if(preg_match("/[^d-., ]/",$num))
{
echo "不是數字: ".$num;
}
else
{
echo "是數字: ".$num;
}
?>
註:php正則表達式
ereg( "^[A-Za-z0-9_.-]+$ ",$str);
eregi( "^[a-z0-9_.-]+$ ",$str);
is_float: 判斷變數型態是否為浮點數型態。
is_int: 判斷變數型態是否為整數型態。
is_integer: 判斷變數型態是否為長整數型態。
is_long: 判斷變數型態是否為長整數型態。
is_object: 判斷變數型態是否為物件型態。
is_real: 判斷變數型態是否為實數型態。
ereg -- 正則表達式匹配。若有更多問題到後盾網論壇問題求助專區。
⑨ php中get_magic_quotes_runtime()函數作用是什麼
取得
PHP
環境變數
magic_quotes_runtime
的值。
語法:
long
get_magic_quotes_runtime(void);
返回值:
長整數
函數種類:
PHP
系統功能
內容說明
本函數取得
PHP
環境配置的變數
magic_quotes_runtime
值。返回
0
表示關閉本功能;返回
1
表示本功能打開。若
magic_quotes_runtime
打開時,所有外部引入的資料庫資料或者文件等等都會自動轉為含有反斜線溢出字元的資料。
建議樓主多看看php的手冊
⑩ php 整型占幾個位元組
據官方資料:
整型數的字長和平台有關,盡管通常最大值是大約二十億(32 位有符號)。 PHP 不支持無符號整數。Integer值的字長可以用常量PHP_INT_SIZE來表示,自 PHP 4.4.0 和 PHP 5.0.5後,最大值可以用常量PHP_INT_MAX來表示。