国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發(fā)設計 > 正文

關于微信等app請求服務器,file_get_contents()函數(shù)和CURL用法

2019-11-08 19:26:56
字體:
來源:轉載
供稿:網友

在微信開發(fā)demo中,有一句建議注釋:

//php5.6不建議使用$GLOBALS[]來接收POST數(shù)據(jù),推薦改用 file_get_contents("php://input");

        $postStr = $GLOBALS["HTTP_RAW_POST_DATA"];

客戶端使用Ajax技術中的post方法向服務器發(fā)送的所有內容都可以在服務器中的一個特殊文件php://input中找到.

file_get_contents() 函數(shù)把整個文件讀入一個字符串中。和 file() 一樣,不同的是 file_get_contents() 把文件讀入一個字符串。file_get_contents() 函數(shù)是用于將文件的內容讀入到一個字符串中的首選方法。如果操作系統(tǒng)支持,還會使用內存映射技術來增強性能。語法file_get_contents(path,include_path,context,start,max_length)參數(shù) 描述 path 必需。規(guī)定要讀取的文件的路徑。 include_path 可選。如果也想在 include_path 中搜尋文件的話,可以將該參數(shù)設為 "1"。 context 可選。規(guī)定文件句柄的環(huán)境。context 是一套可以修改流的行為的選項。若使用 null,則忽略。start 可選。規(guī)定在文件中開始讀取的位置。該參數(shù)是 PHP 5.1 新加的。 

max_length 可選。規(guī)定讀取的字節(jié)數(shù)。該參數(shù)是 PHP 5.1 新加的。 

-------------------------------------------------------------------------------------------------------------------

這幾天在幫一些同學處理問題的時候,突然發(fā)現(xiàn)這些同學是使用file_get_contents()函數(shù)來采集頁面內容的,貌似都沒有curl的概念亦或是對這種工具特別不敏感,本文我來給大家詳細介紹下cURL的簡單的使用方法,下文我將會給大家詳細介紹cURL的高級應用,好,廢話不多說,我們先來認識下什么是cURL,可能還有很多同學沒有聽說過這個工具,我先來給大家簡單介紹下什么是cURL:cURL可以使用URL的語法模擬瀏覽器來傳輸數(shù)據(jù),因為它是模擬瀏覽器,因此它同樣支持多種協(xié)議,F(xiàn)TP, FTPS, HTTP, HTTPS, GOPHER, TELNET, DICT, FILE 以及 LDAP等協(xié)議都可以很好的支持,包括一些:HTTPS認證,HTTP POST方法,HTTP PUT方法,F(xiàn)TP上傳,keyberos認證,HTTP上傳,代理服務器,cookies,用戶名/密碼認證,下載文件斷點續(xù)傳,上傳文件斷點續(xù)傳,http代理服務器管道,甚至它還支持ipv6,scoket5代理服務器,通過http代理服務器上傳文件到FTP服務器等等。這就是我們?yōu)槭裁匆褂胏URL的原因!使用cURL完成簡單的請求主要分為以下四步:1.初始化,創(chuàng)建一個新cURL資源2.設置URL和相應的選項3.抓取URL并把它傳遞給瀏覽器4.關閉cURL資源,并且釋放系統(tǒng)資源我們來采集一個頁面,通常情況下,我們會使用file_get_contents()函數(shù)來獲取:像這樣:

 <?php $str = file_get_contents('http://bbs.lampbrother.net'); //或者是: $str = file("http://bbs.lampbrother.net"); //或者是: readfile("http://bbs.lampbrother.net"); ?>這樣我們會發(fā)現(xiàn),我們沒有辦法有效地進行錯誤處理,更重要的是我們沒有辦法完成一些高難度的任務:如:處理cookies,驗證,表單提交,文件上傳等等。好,現(xiàn)在我們來用代碼完成上述cURL的四步:<?php //1.初始化,創(chuàng)建一個新cURL資源 $ch = curl_init(); //2.設置URL和相應的選項 curl_setopt($ch, CURLOPT_URL, "http://www.lampbrother.net/"); curl_setopt($ch, CURLOPT_HEADER, 0); //3.抓取URL并把它傳遞給瀏覽器 curl_exec($ch); //4.關閉cURL資源,并且釋放系統(tǒng)資源 curl_close($ch); ?>上述四步中,其中第二步最為關鍵,可以設置一些高級選項:例如上例中的CURLOPT_URL和CURLOPT_HEADER,分別代表“需要獲取的URL地址”和“啟用時會將頭文件的信息作為數(shù)據(jù)流輸出”,這些只是冰山一角,我們還可以設置很多選項:
選項可選value備注
CURLOPT_AUTOREFERER當根據(jù)Location:重定向時,自動設置header中的Referer:信息。 
CURLOPT_BINARYTRANSFER在啟用CURLOPT_RETURNTRANSFER的時候,返回原生的(Raw)輸出。 
CURLOPT_COOKIEsession啟用時curl會僅僅傳遞一個session cookie,忽略其他的cookie,默認狀況下cURL會將所有的cookie返回給服務端。session cookie是指那些用來判斷服務器端的session是否有效而存在的cookie。 
CURLOPT_CRLF啟用時將Unix的換行符轉換成回車換行符。 
CURLOPT_DNS_USE_GLOBAL_CACHE啟用時會啟用一個全局的DNS緩存,此項為線程安全的,并且默認啟用。 
CURLOPT_FAILONERROR顯示HTTP狀態(tài)碼,默認行為是忽略編號小于等于400的HTTP信息。 
CURLOPT_FILETIME啟用時會嘗試修改遠程文檔中的信息。結果信息會通過curl_getinfo()函數(shù)的CURLINFO_FILETIME選項返回。 curl_getinfo(). 
CURLOPT_FOLLOWLOCATION啟用時會將服務器服務器返回的"Location: "放在header中遞歸的返回給服務器,使用CURLOPT_MAXREDIRS可以限定遞歸返回的數(shù)量。 
CURLOPT_FORBID_REUSE在完成交互以后強迫斷開連接,不能重用。 
CURLOPT_FRESH_CONNECT強制獲取一個新的連接,替代緩存中的連接。 
CURLOPT_FTP_USE_EPRT啟用時當FTP下載時,使用EPRT (或 LPRT)命令。設置為FALSE時禁用EPRT和LPRT,使用PORT命令 only. 
CURLOPT_FTP_USE_EPSV啟用時,在FTP傳輸過程中回復到PASV模式前首先嘗試EPSV命令。設置為FALSE時禁用EPSV命令。 
CURLOPT_FTPAPPEND啟用時追加寫入文件而不是覆蓋它。 
CURLOPT_FTPASCIICURLOPT_TRANSFERTEXT的別名。 
CURLOPT_FTPLISTONLY啟用時只列出FTP目錄的名字。 
CURLOPT_HEADER啟用時會將頭文件的信息作為數(shù)據(jù)流輸出。 
CURLINFO_HEADER_OUT啟用時追蹤句柄的請求字符串。從 PHP 5.1.3 開始可用。CURLINFO_前綴是故意的(intentional)。
CURLOPT_HTTPGET啟用時會設置HTTP的method為GET,因為GET是默認是,所以只在被修改的情況下使用。 
CURLOPT_HTTPPROXYTUNNEL啟用時會通過HTTP代理來傳輸。 
CURLOPT_MUTE啟用時將cURL函數(shù)中所有修改過的參數(shù)恢復默認值。 
CURLOPT_NETRC在連接建立以后,訪問~/.netrc文件獲取用戶名和密碼信息連接遠程站點。 
CURLOPT_NOBODY啟用時將不對HTML中的BODY部分進行輸出。 
CURLOPT_NOPROGRESS啟用時關閉curl傳輸?shù)倪M度條,此項的默認設置為啟用。
 Note: PHP自動地設置這個選項為TRUE,這個選項僅僅應當在以調試為目的時被改變。  
 
CURLOPT_NOSIGNAL啟用時忽略所有的curl傳遞給php進行的信號。在SAPI多線程傳輸時此項被默認啟用。cURL 7.10時被加入。
CURLOPT_POST啟用時會發(fā)送一個常規(guī)的POST請求,類型為:application/x-www-form-urlencoded,就像表單提交的一樣。 
CURLOPT_PUT啟用時允許HTTP發(fā)送文件,必須同時設置CURLOPT_INFILE和CURLOPT_INFILESIZE。 
CURLOPT_RETURNTRANSFER將curl_exec()獲取的信息以文件流的形式返回,而不是直接輸出。 
CURLOPT_SSL_VERIFYPEER禁用后cURL將終止從服務端進行驗證。使用CURLOPT_CAINFO選項設置證書使用CURLOPT_CAPATH選項設置證書目錄 如果CURLOPT_SSL_VERIFYPEER(默認值為2)被啟用,CURLOPT_SSL_VERIFYHOST需要被設置成TRUE否則設置為FALSE。自cURL 7.10開始默認為TRUE。從cURL 7.10開始默認綁定安裝。
CURLOPT_TRANSFERTEXT啟用后對FTP傳輸使用ASCII模式。對于LDAP,它檢索純文本信息而非HTML。在Windows系統(tǒng)上,系統(tǒng)不會把STDOUT設置成binary模式。 
CURLOPT_UNRESTRICTED_AUTH在使用CURLOPT_FOLLOWLOCATION產生的header中的多個locations中持續(xù)追加用戶名和密碼信息,即使域名已發(fā)生改變。 
CURLOPT_UPLOAD啟用后允許文件上傳。 
CURLOPT_VERBOSE啟用時會匯報所有的信息,存放在STDERR或指定的CURLOPT_STDERR中。 
對于下面的這些option的可選參數(shù),value應該被設置一個integer類型的值:
選項可選value備注
CURLOPT_BUFFERSIZE每次獲取的數(shù)據(jù)中讀入緩存的大小,但是不保證這個值每次都會被填滿。在cURL 7.10中被加入。
CURLOPT_CLOSEPOLICY不是CURLCLOSEPOLICY_LEAST_RECENTLY_USED就是CURLCLOSEPOLICY_OLDEST,還存在另外三個CURLCLOSEPOLICY_,但是cURL暫時還不支持。 
CURLOPT_CONNECTTIMEOUT在發(fā)起連接前等待的時間,如果設置為0,則無限等待。 
CURLOPT_CONNECTTIMEOUT_MS嘗試連接等待的時間,以毫秒為單位。如果設置為0,則無限等待。在cURL 7.16.2中被加入。從PHP 5.2.3開始可用。
CURLOPT_DNS_CACHE_TIMEOUT設置在內存中保存DNS信息的時間,默認為120秒。 
CURLOPT_FTPSSLAUTHFTP驗證方式:CURLFTPAUTH_SSL (首先嘗試SSL),CURLFTPAUTH_TLS (首先嘗試TLS)或CURLFTPAUTH_DEFAULT (讓cURL自動決定)。在cURL 7.12.2中被加入。
CURLOPT_HTTP_VERSIONCURL_HTTP_VERSION_NONE (默認值,讓cURL自己判斷使用哪個版本),CURL_HTTP_VERSION_1_0 (強制使用 HTTP/1.0)或CURL_HTTP_VERSION_1_1 (強制使用 HTTP/1.1)。 
CURLOPT_HTTPAUTH使用的HTTP驗證方法,可選的值有:CURLAUTH_BASICCURLAUTH_DIGESTCURLAUTH_GSSNEGOTIATECURLAUTH_NTLMCURLAUTH_ANYCURLAUTH_ANYSAFE。 可以使用|位域(或)操作符分隔多個值,cURL讓服務器選擇一個支持最好的值。 CURLAUTH_ANY等價于CURLAUTH_BASIC | CURLAUTH_DIGEST | CURLAUTH_GSSNEGOTIATE | CURLAUTH_NTLMCURLAUTH_ANYSAFE等價于CURLAUTH_DIGEST | CURLAUTH_GSSNEGOTIATE | CURLAUTH_NTLM. 
CURLOPT_INFILESIZE設定上傳文件的大小限制,字節(jié)(byte)為單位。 
CURLOPT_LOW_SPEED_LIMIT當傳輸速度小于CURLOPT_LOW_SPEED_LIMIT時(bytes/sec),PHP會根據(jù)CURLOPT_LOW_SPEED_TIME來判斷是否因太慢而取消傳輸。 
CURLOPT_LOW_SPEED_TIME當傳輸速度小于CURLOPT_LOW_SPEED_LIMIT時(bytes/sec),PHP會根據(jù)CURLOPT_LOW_SPEED_TIME來判斷是否因太慢而取消傳輸。 
CURLOPT_MAXCONNECTS允許的最大連接數(shù)量,超過是會通過CURLOPT_CLOSEPOLICY決定應該停止哪些連接。 
CURLOPT_MAXREDIRS指定最多的HTTP重定向的數(shù)量,這個選項是和CURLOPT_FOLLOWLOCATION一起使用的。 
CURLOPT_PORT用來指定連接端口。(可選項) 
CURLOPT_PROTOCOLSCURLPROTO_*的位域指。如果被啟用,位域值會限定libcurl在傳輸過程中有哪些可使用的協(xié)議。這將允許你在編譯libcurl時支持眾多協(xié)議,但是限制只是用它們中被允許使用的一個子集。默認libcurl將會使用全部它支持的協(xié)議。參見CURLOPT_REDIR_PROTOCOLS. 可用的協(xié)議選項為:CURLPROTO_HTTPCURLPROTO_HTTPSCURLPROTO_FTPCURLPROTO_FTPSCURLPROTO_SCPCURLPROTO_SFTPCURLPROTO_TELNETCURLPROTO_LDAPCURLPROTO_LDAPSCURLPROTO_DICTCURLPROTO_FILECURLPROTO_TFTPCURLPROTO_ALL在cURL 7.19.4中被加入。
CURLOPT_PROXYAUTHHTTP代理連接的驗證方式。使用在CURLOPT_HTTPAUTH中的位域標志來設置相應選項。對于代理驗證只有CURLAUTH_BASICCURLAUTH_NTLM當前被支持。在cURL 7.10.7中被加入。
CURLOPT_PROXYPORT代理服務器的端口。端口也可以在CURLOPT_PROXY中進行設置。 
CURLOPT_PROXYTYPE不是CURLPROXY_HTTP (默認值) 就是CURLPROXY_SOCKS5在cURL 7.10中被加入。
CURLOPT_REDIR_PROTOCOLSCURLPROTO_*中的位域值。如果被啟用,位域值將會限制傳輸線程在CURLOPT_FOLLOWLOCATION開啟時跟隨某個重定向時可使用的協(xié)議。這將使你對重定向時限制傳輸線程使用被允許的協(xié)議子集默認libcurl將會允許除FILE和SCP之外的全部協(xié)議。這個和7.19.4預發(fā)布版本種無條件地跟隨所有支持的協(xié)議有一些不同。關于協(xié)議常量,請參照CURLOPT_PROTOCOLS。在cURL 7.19.4中被加入。
CURLOPT_RESUME_FROM在恢復傳輸時傳遞一個字節(jié)偏移量(用來斷點續(xù)傳)。 
CURLOPT_SSL_VERIFYHOST1 檢查服務器SSL證書中是否存在一個公用名(common name)。譯者注:公用名(Common Name)一般來講就是填寫你將要申請SSL證書的域名 (domain)或子域名(sub domain)。2 檢查公用名是否存在,并且是否與提供的主機名匹配。 
CURLOPT_SSLVERSION使用的SSL版本(2 或 3)。默認情況下PHP會自己檢測這個值,盡管有些情況下需要手動地進行設置。 
CURLOPT_TIMECONDITION如果在CURLOPT_TIMEVALUE指定的某個時間以后被編輯過,則使用CURL_TIMECOND_IFMODSINCE返回頁面,如果沒有被修改過,并且CURLOPT_HEADER為true,則返回一個"304 Not Modified"的header, CURLOPT_HEADER為false,則使用CURL_TIMECOND_IFUNMODSINCE,默認值為CURL_TIMECOND_IFUNMODSINCE 
CURLOPT_TIMEOUT設置cURL允許執(zhí)行的最長秒數(shù)。 
CURLOPT_TIMEOUT_MS設置cURL允許執(zhí)行的最長毫秒數(shù)。在cURL 7.16.2中被加入。從PHP 5.2.3起可使用。
CURLOPT_TIMEVALUE設置一個CURLOPT_TIMECONDITION使用的時間戳,在默認狀態(tài)下使用的是CURL_TIMECOND_IFMODSINCE 
對于下面的這些option的可選參數(shù),value應該被設置一個string類型的值:
選項可選value備注
CURLOPT_CAINFO一個保存著1個或多個用來讓服務端驗證的證書的文件名。這個參數(shù)僅僅在和CURLOPT_SSL_VERIFYPEER一起使用時才有意義。 . 
CURLOPT_CAPATH一個保存著多個CA證書的目錄。這個選項是和CURLOPT_SSL_VERIFYPEER一起使用的。 
CURLOPT_COOKIE設定HTTP請求中"Cookie: "部分的內容。多個cookie用分號分隔,分號后帶一個空格(例如, "fruit=apple; colour=red")。 
CURLOPT_COOKIEFILE包含cookie數(shù)據(jù)的文件名,cookie文件的格式可以是Netscape格式,或者只是純HTTP頭部信息存入文件。 
CURLOPT_COOKIEJAR連接結束后保存cookie信息的文件。 
CURLOPT_CUSTOMREQUEST使用一個自定義的請求信息來代替"GET""HEAD"作為HTTP請求。這對于執(zhí)行"DELETE" 或者其他更隱蔽的HTTP請求。有效值如"GET""POST""CONNECT"等等。也就是說,不要在這里輸入整個HTTP請求。例如輸入"GET /index.html HTTP/1.0 "是不正確的。
 Note: 在確定服務器支持這個自定義請求的方法前不要使用。  
 
CURLOPT_EGDSOCKET類似CURLOPT_RANDOM_FILE,除了一個Entropy Gathering Daemon套接字。 
CURLOPT_ENCODINGHTTP請求頭中"Accept-Encoding: "的值。支持的編碼有"identity""deflate""gzip"。如果為空字符串"",請求頭會發(fā)送所有支持的編碼類型。在cURL 7.10中被加入。
CURLOPT_FTPPORT這個值將被用來獲取供FTP"POST"指令所需要的IP地址。"POST"指令告訴遠程服務器連接到我們指定的IP地址。這個字符串可以是純文本的IP地址、主機名、一個網絡接口名(UNIX下)或者只是一個'-'來使用默認的IP地址。 
CURLOPT_INTERFACE網絡發(fā)送接口名,可以是一個接口名、IP地址或者是一個主機名。 
CURLOPT_KRB4LEVELKRB4 (Kerberos 4) 安全級別。下面的任何值都是有效的(從低到高的順序):"clear""safe""confidential""private".。如果字符串和這些都不匹配,將使用"private"。這個選項設置為NULL時將禁用KRB4 安全認證。目前KRB4 安全認證只能用于FTP傳輸。 
CURLOPT_POSTFIELDS全部數(shù)據(jù)使用HTTP協(xié)議中的"POST"操作來發(fā)送。要發(fā)送文件,在文件名前面加上@前綴并使用完整路徑。這個參數(shù)可以通過urlencoded后的字符串類似'para1=val1&para2=val2&...'或使用一個以字段名為鍵值,字段數(shù)據(jù)為值的數(shù)組。如果value是一個數(shù)組,Content-Type頭將會被設置成multipart/form-data 
CURLOPT_PROXYHTTP代理通道。 
CURLOPT_PROXYUSERPWD一個用來連接到代理的"[username]:[passWord]"格式的字符串。 
CURLOPT_RANDOM_FILE一個被用來生成SSL隨機數(shù)種子的文件名。 
CURLOPT_RANGE"X-Y"的形式,其中X和Y都是可選項獲取數(shù)據(jù)的范圍,以字節(jié)計。HTTP傳輸線程也支持幾個這樣的重復項中間用逗號分隔如"X-Y,N-M" 
CURLOPT_REFERER在HTTP請求頭中"Referer: "的內容。 
CURLOPT_SSL_CIPHER_LIST一個SSL的加密算法列表。例如RC4-SHATLSv1都是可用的加密列表。 
CURLOPT_SSLCERT一個包含PEM格式證書的文件名。 
CURLOPT_SSLCERTPASSWD使用CURLOPT_SSLCERT證書需要的密碼。 
CURLOPT_SSLCERTTYPE證書的類型。支持的格式有"PEM" (默認值), "DER""ENG"在cURL 7.9.3中被加入。
CURLOPT_SSLENGINE用來在CURLOPT_SSLKEY中指定的SSL私鑰的加密引擎變量。 
CURLOPT_SSLENGINE_DEFAULT用來做非對稱加密操作的變量。 
CURLOPT_SSLKEY包含SSL私鑰的文件名。 
CURLOPT_SSLKEYPASSWD在CURLOPT_SSLKEY中指定了的SSL私鑰的密碼。
 Note: 由于這個選項包含了敏感的密碼信息,記得保證這個PHP腳本的安全。  
 
CURLOPT_SSLKEYTYPECURLOPT_SSLKEY中規(guī)定的私鑰的加密類型,支持的密鑰類型為"PEM"(默認值)、"DER""ENG" 
CURLOPT_URL需要獲取的URL地址,也可以在curl_init()函數(shù)中設置。 
CURLOPT_USERAGENT在HTTP請求中包含一個"User-Agent: "頭的字符串。 
CURLOPT_USERPWD傳遞一個連接中需要的用戶名和密碼,格式為:"[username]:[password]" 
對于下面的這些option的可選參數(shù),value應該被設置一個數(shù)組:對于下面的這些option的可選參數(shù),value應該被設置一個流資源 (例如使用fopen()):對于下面的這些option的可選參數(shù),value應該被設置為一個回調函數(shù)名:
選項可選value
CURLOPT_HEADERFUNCTION設置一個回調函數(shù),這個函數(shù)有兩個參數(shù),第一個是cURL的資源句柄,第二個是輸出的header數(shù)據(jù)。header數(shù)據(jù)的輸出必須依賴這個函數(shù),返回已寫入的數(shù)據(jù)大小。
CURLOPT_PASSWDFUNCTION設置一個回調函數(shù),有三個參數(shù),第一個是cURL的資源句柄,第二個是一個密碼提示符,第三個參數(shù)是密碼長度允許的最大值。返回密碼的值。
CURLOPT_PROGRESSFUNCTION設置一個回調函數(shù),有三個參數(shù),第一個是cURL的資源句柄,第二個是一個文件描述符資源,第三個是長度。返回包含的數(shù)據(jù)。
CURLOPT_READFUNCTION擁有兩個參數(shù)的回調函數(shù),第一個是參數(shù)是會話句柄,第二是HTTP響應頭信息的字符串。使用此函數(shù),將自行處理返回的數(shù)據(jù)。返回值為數(shù)據(jù)大小,以字節(jié)計。返回0代表EOF信號。
CURLOPT_WRITEFUNCTION擁有兩個參數(shù)的回調函數(shù),第一個是參數(shù)是會話句柄,第二是HTTP響應頭信息的字符串。使用此回調函數(shù),將自行處理響應頭信息。響應頭信息是整個字符串。設置返回值為精確的已寫入字符串長度。發(fā)生錯誤時傳輸線程終止。
看到了吧,只要在第二個函數(shù)之內設置這些選項就可以完成相應的功能,cURL的功能是灰常強大滴,大家可以嘗試一下哦!例如,我們只想把獲取到的內容輸入到文件,而不是直接輸出給瀏覽器,我們就可以使用CURLOPT_RETURNTRANSFER選項!這樣在curl執(zhí)行的時候,就會把頁面的內容輸出到文件當中,我們就可以完成采集等功能啦!效率方面,curl的原理是模擬瀏覽器的操作,它的效率要比file_get_contents()高出四倍以上,試想一下,我們要采集一個信息量特別龐大的站,運行效率的差別可想而知!不單單是效率上,穩(wěn)定性上來說,curl也遠比file_get_contents()函數(shù)要好很多!這就是強大的curl,下文將給大家詳細介紹它的高級應用,我們可以模擬瀏覽器的post傳值,甚至上傳!
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 大名县| 刚察县| 昌宁县| 双鸭山市| 兴海县| 牙克石市| 平果县| 兴业县| 尼木县| 虹口区| 宾阳县| 图片| 新疆| 兰考县| 郸城县| 贵港市| 毕节市| 泸定县| 莱阳市| 襄汾县| 铜梁县| 垫江县| 湟源县| 阜城县| 昭平县| 雅江县| 鄂托克旗| 罗源县| 卓尼县| 丹阳市| 开封县| 平邑县| 新沂市| 信宜市| 潮安县| 建平县| 皮山县| 古蔺县| 商南县| 浦城县| 永新县|