天天看點

直接拿來用,超實用的PHP代碼片段(二)

  每位程式員和開發者都喜歡讨論他們最愛的代碼片段,尤其是當PHP開發者花費數個小時為網頁編碼或建立應用時,他們更知道這些代碼的重要性。為了節約編碼時間,筆者收集了一些較為實用的代碼片段,幫助開發者提高工作效率。>>>

點選檢視PHP代碼片段(一)

  1) Whois query using PHP

——利用PHP擷取Whois請求

  利用這段代碼,在特定的域名裡可獲得whois資訊。把域名名稱作為參數,并顯示所有域名的相關資訊。

  function

whois_query($domain) {

  // fix the domain

name:

  $domain =

strtolower(trim($domain));

preg_replace(‘/^http:\/\//i‘, ‘‘, $domain);

preg_replace(‘/^www\./i‘, ‘‘, $domain);

  $domain = explode(‘/‘,

$domain);

trim($domain[0]);

  // split the TLD from

domain name

  $_domain = explode(‘.‘,

  $lst =

count($_domain)-1;

  $ext =

$_domain[$lst];

  // You find resources and

lists

  // like these on

wikipedia:

  //

  // <a

href="http://de.wikipedia.org/wiki/Whois">http://de.wikipedia.org/wiki/Whois</a>

  $servers =

array(

  "biz" =>

"whois.neulevel.biz",

  "com" =>

"whois.internic.net",

  "us" =>

"whois.nic.us",

  "coop" =>

"whois.nic.coop",

  "info" =>

"whois.nic.info",

  "name" =>

"whois.nic.name",

  "net" =>

  "gov" =>

"whois.nic.gov",

  "edu" =>

  "mil" =>

"rs.internic.net",

  "int" =>

"whois.iana.org",

  "ac" =>

"whois.nic.ac",

  "ae" =>

"whois.uaenic.ae",

  "at" =>

"whois.ripe.net",

  "au" =>

"whois.aunic.net",

  "be" =>

"whois.dns.be",

  "bg" =>

  "br" =>

"whois.registro.br",

  "bz" =>

"whois.belizenic.bz",

  "ca" =>

"whois.cira.ca",

  "cc" =>

"whois.nic.cc",

  "ch" =>

"whois.nic.ch",

  "cl" =>

"whois.nic.cl",

  "cn" =>

"whois.cnnic.net.cn",

  "cz" =>

"whois.nic.cz",

  "de" =>

"whois.nic.de",

  "fr" =>

"whois.nic.fr",

  "hu" =>

"whois.nic.hu",

  "ie" =>

"whois.domainregistry.ie",

  "il" =>

"whois.isoc.org.il",

  "in" =>

"whois.ncst.ernet.in",

  "ir" =>

"whois.nic.ir",

  "mc" =>

  "to" =>

"whois.tonic.to",

  "tv" =>

"whois.tv",

  "ru" =>

"whois.ripn.net",

  "org" =>

"whois.pir.org",

  "aero" =>

"whois.information.aero",

  "nl" =>

"whois.domain-registry.nl"

  );

  if

(!isset($servers[$ext])){

  die(‘Error: No matching nic

server found!‘);

  }

  $nic_server =

$servers[$ext];

  $output = ‘‘;

  // connect to whois

server:

  if ($conn = fsockopen

($nic_server, 43)) {

  fputs($conn,

$domain."\r\n");

  while(!feof($conn))

{

  $output .=

fgets($conn,128);

  fclose($conn);

  else { die(‘Error: Could

not connect to ‘ . $nic_server . ‘!‘); }

  return $output;

  2) Text messaging with PHP

using the TextMagic API ——使用TextMagic API 擷取PHP Test資訊

  TextMagic引入強大的核心API,可輕松将SMS發送到手機。該API是需要付費。

  the TextMagic PHP

lib

  require(‘textmagic-sms-api-php/TextMagicAPI.php‘);

  // Set the username and

password information

  $username =

‘myusername‘;

  $password =

‘mypassword‘;

  // Create a new instance of

TM

  $router = new

TextMagicAPI(array(

  ‘username‘ =>

$username,

  ‘password‘ =>

$password

  ));

  // Send a text message to

‘999-123-4567‘

  $result =

$router->send(‘Wake up!‘, array(9991234567), true);

  // result: Result is: Array

( [messages] => Array ( [19896128] => 9991234567 ) [sent_text] => Wake

up! [parts_count] => 1 )

  3) Get info about your

memory usage——擷取記憶體使用率

  這段代碼幫助你擷取記憶體使用率。

  echo "Initial:

".memory_get_usage()。" bytes \n";

  /* prints

  Initial: 361400

bytes

  */

  // let‘s use up some

memory

  for ($i = 0; $i <

100000; $i++) {

  $array []=

md5($i);

  // let‘s remove half of the

array

  unset($array[$i]);

  echo "Final:

  Final: 885912

  echo "Peak:

".memory_get_peak_usage()。" bytes \n";

  Peak: 13687072

  4) Display source code of

any webpage——檢視任意網頁源代碼

  如果你想檢視網頁源代碼,那麼隻需更改第二行的URL,源代碼就會在網頁上顯示。

  <?php // display source

code $lines = file(‘http://google.com/‘); foreach ($lines as $line_num =>

$line) {

  // loop thru each line and

prepend line numbers

  echo "Line #{$line_num} : "

. htmlspecialchars($line) . "

  \n";

  5) Create data

uri’s——建立資料uri

  通過使用此代碼,你可以建立資料Uri,這對在HTML/CSS中嵌入圖檔非常有用,可幫助節省HTTP請求。

  function data_uri($file,

$mime) {

  $contents=file_get_contents($file);

  $base64=base64_encode($contents);

  echo

"data:$mime;base64,$base64";

  6) Detect location by

IP——通過IP檢索出地理位置

  這段代碼幫助你查找特定的IP,隻需在功能參數上輸入IP,就可檢測出位置。

  function detect_city($ip)

  $default =

‘UNKNOWN‘;

  if (!is_string($ip) ||

strlen($ip) < 1 || $ip == ‘127.0.0.1‘ || $ip == ‘localhost‘) $ip = ‘8.8.8.8‘;

$curlopt_useragent = ‘Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2)

Gecko/20100115 Firefox/3.6 (。NET CLR 3.5.30729)‘; $url =

‘http://ipinfodb.com/ip_locator.php?ip=‘ . urlencode($ip); $ch = curl_init();

$curl_opt = array( CURLOPT_FOLLOWLOCATION => 1,

  CURLOPT_HEADER =>

0,

  CURLOPT_RETURNTRANSFER

=> 1,

  CURLOPT_USERAGENT =>

$curlopt_useragent,

  CURLOPT_URL =>

$url,

  CURLOPT_TIMEOUT =>

1,

  CURLOPT_REFERER =>

‘http://‘ . $_SERVER[‘HTTP_HOST‘],

  curl_setopt_array($ch,

$curl_opt);

  $content =

curl_exec($ch);

  if (!is_null($curl_info))

  $curl_info =

curl_getinfo($ch);

  curl_close($ch);

  if (

preg_match(‘{

  City :

([^<]*)

  }i’, $content, $regs) ) {

$city = $regs[1]; } if ( preg_match(‘{

  State/Province :

$state = $regs[1]; } if( $city!=” && $state!=” ){ $location = $city . ‘,

‘ . $state; return $location; }else{ return $default; } }

  7) Detect browser

language——檢視浏覽器語言

  檢測浏覽器使用的代碼腳本語言。

get_client_language($availableLanguages, $default=‘en‘){

(isset($_SERVER[‘HTTP_ACCEPT_LANGUAGE‘])) {

  $langs=explode(‘,‘,$_SERVER[‘HTTP_ACCEPT_LANGUAGE‘]);

  foreach ($langs as

$value){

  $choice=substr($value,0,2);

  if(in_array($choice,

$availableLanguages)){

  return $choice;

  return $default;

  8) Check if server is

HTTPS——檢測伺服器是否是HTTPS

  if ($_SERVER[‘HTTPS‘] !=

"on") {

  echo "This is not

HTTPS";

  }else{

  echo "This is

  9) Generate CSV file from a

PHP array——在PHP數組中生成。csv 檔案

  function generateCsv($data,

$delimiter = ‘,‘, $enclosure = ‘"‘) {

  $handle =

fopen(‘php://temp‘, ‘r+‘);

  foreach ($data as $line)

  fputcsv($handle, $line,

$delimiter, $enclosure);

  rewind($handle);

  while (!feof($handle))

  $contents .= fread($handle,

8192);

  fclose($handle);

  return

$contents;