$GLOBALS explode(分隔符,字串,[傳回最大元素數目]) str_replace(要找的字,要換的字,要被找的字串或陣列[,存換了幾次]):對大小寫敏感。請使用 str_ireplace() 執行對大小寫不敏感的搜索。 第三引數若為陣列,則每一個元素(字串)進行一輪置換操作。 若第一引數與第二引數為陣列,代表第一引數各元素與第二引數各元素配對,進行多組置換。 例一: $arr = array("blue","red","green","yellow"); print_r(str_replace("red","pink",$arr,$i)); echo "Replacbents: $i"; 輸出: Array( [0]=> blue [1] => pink [2] => green [3] => yellow ) Replacbents: 1 例二: $find = array("Hello","world"); $replace = array("B"); $arr = array("Hello","world","!"); print_r(str_replace($find,$replace,$arr)); 輸出: Array ( [0]=> B [1] => [2] => ! ) in_array(元素,陣列) int preg_match(正規表示式,要比對的字串[,符合陣列[,int flags]]) 符合陣列[0]:原字串 符合陣列[1]:第一個符合字串 符合陣列[2]:第二個符合字串 explode(分隔字,字串,[最多幾個]) array_push(陣列,元素值1,元素值2...) array_pop(陣列):除去最後一個元素 end(陣列):取最末元素 一個連接插座,可以接受多次連接 socket_create(網址類型,插座類型,封包類型); 網址類型: AF_INET 用IPv4,TCP或UDP封包 AF_INET6 用IPv6,TCP或UDP封包 AF_UNIX Unix或Linux,客戶端和伺服器在同一台機器上 插座類型 SOCK_STREAM 資料流,用TCP,依序的、可靠完整的 SOCK_DGRAM 資料塊,用UDP,定長、不可靠的 SOCK_SEQPACKET 雙向可靠,定長,封包完整接收後才能進行讀取 SOCK_RAW 用ICMP(ping、traceroute使用),單次訪問 SOCK_RDM 不保證封包的順序,供數據鏈路層用,很少用 封包類型 SOL_ICMP 網際網路控制訊息協定,用在網關和主機上,檢查網絡狀況和報告錯誤信息 SOL_UDP 用戶數據報文協定,無連接,不可靠 SOL_TCP 傳輸控制協定,保證封包能送達接受者,如發生錯誤將重發出錯的數據 伺服器端(監聽) 不同的監聽服務有不同的實作,本例為:等待連接,每進來一個連接,印出「Socket connected」於伺服器的螢幕上。 伺服器檢查緩衝區,如果緩衝區裡有數據,將數據發送到連接過來的電腦。 然後讀取發送這個數據的回應,一旦收到回應,通知連過來的電腦Information Received,最後關閉連接。 當連接關閉後,服務器又開始處理下一次連接。 $socket=socket_create(AF_INET,SOCK_STREAM,SOL_TCP);// 造連接插座 socket_bind($socket,'localhost',1337);// 把插座綁定到一個IP和某一個port socket_listen($socket,佇列數);// 監聽所有進來的資料 $buffer="NO DATA"; while($connection=socket_accept($socket)){// 接受任何連接請求 // 服務的實作設計開始,不同的服務有不同的實作,以下只是其中一例 printf("Socket connected\r\n"); if($buffer != ""){ // 如果$buffer有東西 printf("Something is in the buffer...sending data...\r\n"); socket_write($connection,$buffer."\r\n"); printf("Wrote to socket\r\n"); }else{ printf("No Data in the buffer\r\n"); } $content=''; // 回應字串 while($response=socket_read($connection,1024,PHP_NORMAL_READ)){ $content.=$response; socket_write($connection,"Information Received\r\n"); printf("Response:".$response."\r\n"); } // 服務的實作設計結束 socket_close($connection);// 關畢該次連結 printf("Closed the socket\r\n\r\n"); } socket_close($socket);// 關畢連接插座 ※提供監聽服務的程式必須用命令列模式執行不要用網頁模式執行,才不會被timeout打斷 用戶端(請求) $socket=socket_create(AF_INET,SOCK_STREAM,SOL_TCP); // 造連接插座 $connection=socket_connect($socket,'118.163.13.139',80);// 插座連上另一個插座 $command="GET /MediaWiki/index.php/國民教育基本需求試算研究案/研究小組?action=render HTTP/1.0\nhost:wiki.12edu.tw\n\n"; socket_write($socket,$command,strlen($command)); // $command的內容送給插座所連線的電腦 $content=''; // 回應字串 while($response=socket_read($socket,1024)){$content.=$response;} // 讀取回應 socket_close($socket); // 關畢連接插座 綜合上兩例圖解 socket_create() ┌─┴─┐ 客戶端程式 伺服器端程式 socket_connect() socket_bind() socket_listen() socket_accept() ↓ socket_read(),socket_recv(),socket_recvfrom() socket_send(),socket_sendto(),socket_write() ↓ socket_close() 諸函式 socket_accept() 接受一個Socket連接 socket_bind() 把socket綁定在一個IP地址和端口上 socket_clear_error() 清除socket的錯誤或者最後的錯誤代碼 socket_close() 關閉一個socket資源 socket_connect() 開始一個socket連接 socket_create_listen() 在指定端口打開一個socket監聽 socket_create_pair() 產生一對沒有區別的socket到一個數組裡 socket_create() 產生一個socket,相當於產生一個socket的數據結構 socket_get_option() 獲取socket選項 socket_getpeername() 獲取遠程類似主機的ip地址 socket_getsockname() 獲取本地socket的ip地址 socket_iovec_add() 添加一個新的向量到一個分散/聚合的數組 socket_iovec_alloc() 這個函數創建一個能夠發送接收讀寫的iovec數據結構 socket_iovec_delete() 刪除一個已經分配的iovec socket_iovec_fetch() 返回指定的iovec資源的數據 socket_iovec_free() 釋放一個iovec資源 socket_iovec_set() 設置iovec的數據新值 socket_last_error() 獲取當前socket的最後錯誤代碼 socket_listen() 監聽由指定socket的所有連接 socket_read() 讀取指定長度的數據 socket_readv() 讀取從分散/聚合數組過來的數據 socket_recv() 從socket裡結束數據到緩存 socket_recvfrom() 接受數據從指定的socket,如果沒有指定則默認當前socket socket_recvmsg() 從iovec裡接受消息 socket_select() 多路選擇 socket_send() 這個函數發送數據到已連接的socket socket_sendmsg() 發送消息到socket socket_sendto() 發送消息到指定地址的socket socket_set_block() 在socket裡設置為塊模式 socket_set_nonblock() socket裡設置為非塊模式 socket_set_option() 設置socket選項 socket_shutdown() 這個函數允許你關閉讀、寫、或者指定的socket socket_strerror() 返回指定錯誤號的詳細錯誤 socket_write() 寫數據到socket緩存 socket_writev() 寫數據到分散/聚合數組