header("content-type:text/html;charset=utf8"); class Dict{ private $word; //显示的条数 private static $num = 10; public function __construct(){} public function content($word){ $this -> word = $word; $symbol = $this -> Pronounced(); $pro = $this->getSay(); $example = $this -> getExample(); $explain = $this -> getExplain(); $synonym = $this -> getSynonym(); $phrase = $this -> getPhrase(); $result = array( "symbol" => $symbol, //音标 "pro" => $pro, //发音 "example"=> $example, //例句 "explain"=> $explain, //简明释义 "synonym"=> $synonym, //同反义词 "phrase" => $phrase //短语数组 ); return $result; } private function getContent(){ $useragent = "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:23.0) Gecko/20100101 Firefox/23.0"; $ch = curl_init(); $url = "http://dict.baidu.com/s?wd=".$this->word; curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_USERAGENT,$useragent); curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($ch, CURLOPT_HTTPGET, 1); curl_setopt($ch, CURLOPT_AUTOREFERER,1); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_TIMEOUT, 30); $result = curl_exec($ch); if (curl_errno($curl)) { echo 'Errno'.curl_error($curl); } curl_close($ch); return $result; } private function Pronounced(){ $data = $this -> getContent(); preg_match_all("/"EN-US">(.*)/Ui",$data,$pronounced); return array( 'en' => $pronounced[1][0], 'us' => $pronounced[1][1] ); } private function getSay(){ $data = $this -> getContent(); preg_match_all("/url="(.*)"/Ui",$data,$pronounced); return array( 'en' => $pronounced[1][0], 'us' => $pronounced[1][1] ); } private function getExample(){ $str = ""; $data = $this -> getContent(); preg_match_all("/var example_data = (.*)];/Us",$data,$example); $data1 = "[[[".ltrim($example[1][0],"["); $data2 = explode("[[[",$data1); $num = count(array_filter($data2)); foreach($data2 as $key => $value){ $data3 = explode("[[","[[".$value); foreach ($data3 as $k => $v) { preg_match_all("/["(.*)",/Us","[".$v, $match); if(!empty($match[1])){ $str .= implode($match[1]," ")."@"; } } } $data4 = trim($str,"@"); $data5 = explode("@", $data4); $result = array_chunk($data5, 2); return $result; } private function getExplain(){ $data = $this -> getContent(); preg_match_all("/id="en-simple-means">(.*)
(?P
(?P
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/4346/viewspace-2810927/ ,如需转载,请注明出处,否则将追究法律责任。