这篇文章介绍的内容是关于PHP调用Google翻译的程序类,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下
<br/>
/* *Google翻译PHP接口 */ $Google = new Google(); echo $Google->translate('中国', 'en'); class Google{ public $out = ""; public $google_translator_url = 'http://translate.google.com/translate_a/t'; public $text = ''; public $from = ''; public $to = ''; function setText($text){ $this->text = $text;} function translate($text, $to = 'ru'){ $this->out = ""; $this->text = $text; $this->from = 'zh_CN'; $this->to = $to; $gphtml = $this->postPage(); $arr = $this->decode($gphtml, 1); if(is_array($arr['sentences'])){ foreach ($arr['sentences'] as $val){ $this->out .= $val['trans']; } } return $this->out; } function postPage(){ $sockfd=socket_create(AF_INET,SOCK_STREAM,getprotobyname("tcp")); $enctext=urlencode($this->text); $post_fields="sl={$this->from}&tl={$this->to}&client=json&ie=UTF-8&oe=UTF-8&text={$enctext}"; $post_content_length=strlen($post_fields); $post_org="POST /translate_a/t HTTP/1.1rnHost: translate.google.comrnConnection: ClosernAccept-Encoding: gzip,deflate,sdchrnContent-Length: ".$post_content_length."rnrn".$post_fields; $ip=gethostbyname("translate.google.com"); socket_connect($sockfd,$ip,80); socket_send($sockfd,$post_org,strlen($post_org),0); $buffer=""; $html=""; while(!strstr($buffer,"rnrn")){ $buf=""; $n=socket_recv($sockfd,$buf,2048,0); if($n!=0 && $n!=-1) { $buffer.=$buf; } } $header=substr($buffer,0,strpos($buffer,"rnrn")); //echo $post_org."rn".$buffer;exit; if(!strstr($header,"chunked")){ $html=substr($buffer,strpos($buffer,"rnrn")+4); while(1){ $nrecv=socket_recv($sockfd,$buf,1024,0); if($nrecv!=0 && $nrecv!=-1){ $html.=$buf; }else{ socket_close($sockfd); return $this->decodeUnicode($html); } } } $html=""; $body=substr($buffer,strpos($buffer,"rnrn")+4); $buf=""; $lastlen=0; $recvloop=TRUE; $bufferloop=TRUE; $nRemainLen=0; while($recvloop){ while($bufferloop){ if($lastlen!=0){ $body=substr($body,$lastlen); } $pos=strpos($body,"rn"); $len=hexdec(substr($body,0,$pos)); if($len!=0){ $body=substr($body,$pos+2); if(strlen($body)>$len+2){ $html.=substr($body,0,$len); $body=substr($body,$len+$pos+4); $lastlen=0; }else{ $lastlen=$len+2-strlen($body); if($len<strlen($body)) $html.=substr($body,0,(strlen($body)-$len)-2); else $html.=$body; $bufferloop=FALSE; } }else{ return $this->decodeUnicode($html); } } $buf=""; $nrecv=socket_recv($sockfd,$buf,1024,0); if($nrecv!=0 && $nrecv!=-1){ $nRemainLen+=$nrecv; } if($nRemainLen>$lastlen) { $bufferloop=TRUE; $lastlen=$nrecv-($nRemainLen-$lastlen); $html.=substr($buf,0,$lastlen-2); $nRemainLen=0; } else $html.=$buf; } } function decode($json,$assoc = false){ $match = '/".*?(?<!\\)"/'; $string = preg_replace($match, '', $json); $string = preg_replace('/[,:{}[]0-9.-+Eaeflnr-u nrt]/', '', $string); if ($string != '') { return null;} $s2m = array(); $m2s = array(); preg_match_all($match, $json, $m); foreach ($m[0] as $s) { $hash = '"' . md5($s) . '"'; $s2m[$s] = $hash; $m2s[$hash] = str_replace('$', '$', $s); } $json = strtr($json, $s2m); $a = ($assoc) ? '' : '(object) '; $data = array( ':' => '=>', '[' => 'array(', '{' => "{$a}array(", ']' => ')', '}' => ')' ); $json = strtr($json, $data); $json = preg_replace('~([s(,>])(-?)0~', '$1$2', $json); $json = strtr($json, $m2s); $function = @create_function('', "return {$json};"); $return = ($function) ? $function() : null; unset($s2m); unset($m2s); unset($function); return $return; } function decodeUnicode($str) { return preg_replace_callback('/\\u([0-9a-f]{4})/i', create_function( '$matches', 'return mb_convert_encoding(pack("H*", $matches[1]), "UTF-8", "UCS-2BE");' ), $str); } }
相关推荐:
以上是PHP呼叫Google翻譯的程式類的詳細內容。更多資訊請關注PHP中文網其他相關文章!

phpsessionstrackuserdataacrossmultiplepagerequestsusingauniqueIdStoredInAcookie.here'showtomanageThemeffectionaly:1)startAsessionWithSessionWwithSession_start()和stordoredAtain $ _session.2)

在PHP中,遍歷會話數據可以通過以下步驟實現:1.使用session_start()啟動會話。 2.通過foreach循環遍歷$_SESSION數組中的所有鍵值對。 3.處理複雜數據結構時,使用is_array()或is_object()函數,並用print_r()輸出詳細信息。 4.優化遍歷時,可採用分頁處理,避免一次性處理大量數據。這將幫助你在實際項目中更有效地管理和使用PHP會話數據。

會話通過服務器端的狀態管理機制實現用戶認證。 1)會話創建並生成唯一ID,2)ID通過cookies傳遞,3)服務器存儲並通過ID訪問會話數據,4)實現用戶認證和狀態管理,提升應用安全性和用戶體驗。

Tostoreauser'snameinaPHPsession,startthesessionwithsession_start(),thenassignthenameto$_SESSION['username'].1)Usesession_start()toinitializethesession.2)Assigntheuser'snameto$_SESSION['username'].Thisallowsyoutoaccessthenameacrossmultiplepages,enhanc

PHPSession失效的原因包括配置錯誤、Cookie問題和Session過期。 1.配置錯誤:檢查並設置正確的session.save_path。 2.Cookie問題:確保Cookie設置正確。 3.Session過期:調整session.gc_maxlifetime值以延長會話時間。

在PHP中調試會話問題的方法包括:1.檢查會話是否正確啟動;2.驗證會話ID的傳遞;3.檢查會話數據的存儲和讀取;4.查看服務器配置。通過輸出會話ID和數據、查看會話文件內容等方法,可以有效診斷和解決會話相關的問題。

多次調用session_start()會導致警告信息和可能的數據覆蓋。 1)PHP會發出警告,提示session已啟動。 2)可能導致session數據意外覆蓋。 3)使用session_status()檢查session狀態,避免重複調用。

在PHP中配置會話生命週期可以通過設置session.gc_maxlifetime和session.cookie_lifetime來實現。 1)session.gc_maxlifetime控制服務器端會話數據的存活時間,2)session.cookie_lifetime控制客戶端cookie的生命週期,設置為0時cookie在瀏覽器關閉時過期。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

mPDF
mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

SecLists
SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

VSCode Windows 64位元 下載
微軟推出的免費、功能強大的一款IDE編輯器

SublimeText3漢化版
中文版,非常好用

WebStorm Mac版
好用的JavaScript開發工具