1. 发送短信
调用 TextMagic API。
01 | // Include the TextMagic PHP lib |
02 | require('textmagic-sms-api-php/TextMagicAPI.php'); |
03 |
04 | // Set the username and password information |
05 | $username = 'myusername'; |
06 | $password = 'mypassword'; |
07 |
08 | // Create a new instance of TM |
09 | $router = new TextMagicAPI(array( |
10 | 'username' => $username, |
11 | 'password' => $password |
12 | )); |
13 |
14 | // Send a text message to '999-123-4567' |
15 | $result = $router->send('Wake up!', array(9991234567), true); |
16 |
17 | // result: Result is: Array ( [messages] => Array ( [19896128] => 9991234567 ) [sent_text] => Wake up! [parts_count] => 1 ) |
2. 根据IP查找地址
01 | function detect_city($ip) { |
02 |
03 | $default = 'UNKNOWN'; |
04 |
05 | if (!is_string($ip) || strlen($ip) < 1 || $ip == '127.0.0.1' || $ip == 'localhost') |
06 | $ip = '8.8.8.8'; |
07 |
08 | $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)'; |
09 |
10 | $url = 'http://ipinfodb.com/ip_locator.php?ip=' . urlencode($ip); |
11 | $ch = curl_init(); |
12 |
13 | $curl_opt = array( |
14 | CURLOPT_FOLLOWLOCATION => 1, |
15 | CURLOPT_HEADER => 0, |
16 | CURLOPT_RETURNTRANSFER => 1, |
17 | CURLOPT_USERAGENT => $curlopt_useragent, |
18 | CURLOPT_URL => $url, |
19 | CURLOPT_TIMEOUT => 1, |
20 | CURLOPT_REFERER => 'http://' . $_SERVER['HTTP_HOST'], |
21 | ); |
22 |
23 | curl_setopt_array($ch, $curl_opt); |
24 |
25 | $content = curl_exec($ch); |
26 |
27 | if (!is_null($curl_info)) { |
28 | $curl_info = curl_getinfo($ch); |
29 | } |
30 |
31 | curl_close($ch); |
32 |
33 | if ( preg_match('{<li>City : ([^<]*)</li>}i', $content, $regs) ) { |
34 | $city = $regs[1]; |
35 | } |
36 | if ( preg_match('{<li>State/Province : ([^<]*)</li>}i', $content, $regs) ) { |
37 | $state = $regs[1]; |
38 | } |
39 |
40 | if( $city!='' && $state!='' ){ |
41 | $location = $city . ', ' . $state; |
42 | return $location; |
43 | }else{ |
44 | return $default; |
45 | } |
46 |
47 | } |
3. 显示网页的源代码
1 | <?php // display source code |
2 | $lines = file('http://google.com/'); |
3 | foreach ($lines as $line_num => $line) { |
4 | // loop thru each line and prepend line numbers |
5 | echo "Line #<b>{$line_num}</b> : " . htmlspecialchars($line) . "<br>\n"; |
6 | } |
4. 检查服务器是否使用HTTPS
1 | if ($_SERVER['HTTPS'] != "on") { |
2 | echo "This is not HTTPS"; |
3 | }else{ |
4 | echo "This is HTTPS"; |
5 | } |
5. 显示Facebook粉丝数量
1 | function fb_fan_count($facebook_name){ |
2 | // Example: https://graph.facebook.com/digimantra |
3 | $data = json_decode(file_get_contents("https://graph.facebook.com/".$facebook_name)); |
4 | echo $data->likes; |
5 | } |
6. 检测图片的主要颜色
01 | $i = imagecreatefromjpeg("image.jpg"); |
02 |
03 | for ($x=0;$x<imagesx($i);$x++) { |
04 | for ($y=0;$y<imagesy($i);$y++) { |
05 | $rgb = imagecolorat($i,$x,$y); |
06 | $r = ($rgb >> 16) & 0xFF; |
07 | $g = ($rgb >> & 0xFF; |
08 | $b = $rgb & 0xFF; |
09 |
10 | $rTotal += $r; |
11 | $gTotal += $g; |
12 | $bTotal += $b; |
13 | $total++; |
14 | } |
15 | } |
16 |
17 | $rAverage = round($rTotal/$total); |
18 | $gAverage = round($gTotal/$total); |
19 | $bAverage = round($bTotal/$total); |
7. 获取内存使用信息
01 | echo "Initial: ".memory_get_usage()." bytes \n"; |
02 | /* prints |
03 | Initial: 361400 bytes |
04 | */ |
05 |
06 | // let's use up some memory |
07 | for ($i = 0; $i < 100000; $i++) { |
08 | $array []= md5($i); |
09 | } |
10 |
11 | // let's remove half of the array |
12 | for ($i = 0; $i < 100000; $i++) { |
13 | unset($array[$i]); |
14 | } |
15 |
16 | echo "Final: ".memory_get_usage()." bytes \n"; |
17 | /* prints |
18 | Final: 885912 bytes |
19 | */ |
20 |
21 | echo "Peak: ".memory_get_peak_usage()." bytes \n"; |
22 | /* prints |
23 | Peak: 13687072 bytes |
24 | */ |
8. 使用 gzcompress() 压缩数据
01 | $string = |
02 | "Lorem ipsum dolor sit amet, consectetur |
03 | adipiscing elit. Nunc ut elit id mi ultricies |
04 | adipiscing. Nulla facilisi. Praesent pulvinar, |
05 | sapien vel feugiat vestibulum, nulla dui pretium orci, |
06 | non ultricies elit lacus quis ante. Lorem ipsum dolor |
07 | sit amet, consectetur adipiscing elit. Aliquam |
08 | pretium ullamcorper urna quis iaculis. Etiam ac massa |
09 | sed turpis tempor luctus. Curabitur sed nibh eu elit |
10 | mollis congue. Praesent ipsum diam, consectetur vitae |
11 | ornare a, aliquam a nunc. In id magna pellentesque |
12 | tellus posuere adipiscing. Sed non mi metus, at lacinia |
13 | augue. Sed magna nisi, ornare in mollis in, mollis |
14 | sed nunc. Etiam at justo in leo congue mollis. |
15 | Nullam in neque eget metus hendrerit scelerisque |
16 | eu non enim. Ut malesuada lacus eu nulla bibendum |
17 | id euismod urna sodales. "; |
18 |
19 | $compressed = gzcompress($string); |
20 |
21 | echo "Original size: ". strlen($string)."\n"; |
22 | /* prints |
23 | Original size: 800 |
24 | */ |
25 |
26 | echo "Compressed size: ". strlen($compressed)."\n"; |
27 | /* prints |
28 | Compressed size: 418 |
29 | */ |
30 |
31 | // getting it back |
32 | $original = gzuncompress($compressed); |
9. 使用PHP做Whois检查
01 | function whois_query($domain) { |
02 |
03 | // fix the domain name: |
04 | $domain = strtolower(trim($domain)); |
05 | $domain = preg_replace('/^http:\/\//i', '', $domain); |
06 | $domain = preg_replace('/^www\./i', '', $domain); |
07 | $domain = explode('/', $domain); |
08 | $domain = trim($domain[0]); |
09 |
10 | // split the TLD from domain name |
11 | $_domain = explode('.', $domain); |
12 | $lst = count($_domain)-1; |
13 | $ext = $_domain[$lst]; |
14 |
15 | // You find resources and lists |
16 | // like these on wikipedia: |
17 | // |
18 | // http://de.wikipedia.org/wiki/Whois |
19 | // |
20 | $servers = array( |
21 | "biz" => "whois.neulevel.biz", |
22 | "com" => "whois.internic.net", |
23 | "us" => "whois.nic.us", |
24 | "coop" => "whois.nic.coop", |
25 | "info" => "whois.nic.info", |
26 | "name" => "whois.nic.name", |
27 | "net" => "whois.internic.net", |
28 | "gov" => "whois.nic.gov", |
29 | "edu" => "whois.internic.net", |
30 | "mil" => "rs.internic.net", |
31 | "int" => "whois.iana.org", |
32 | "ac" => "whois.nic.ac", |
33 | "ae" => "whois.uaenic.ae", |
34 | "at" => "whois.ripe.net", |
35 | "au" => "whois.aunic.net", |
36 | "be" => "whois.dns.be", |
37 | "bg" => "whois.ripe.net", |
38 | "br" => "whois.registro.br", |
39 | "bz" => "whois.belizenic.bz", |
40 | "ca" => "whois.cira.ca", |
41 | "cc" => "whois.nic.cc", |
42 | "ch" => "whois.nic.ch", |
43 | "cl" => "whois.nic.cl", |
44 | "cn" => "whois.cnnic.net.cn", |
45 | "cz" => "whois.nic.cz", |
46 | "de" => "whois.nic.de", |
47 | "fr" => "whois.nic.fr", |
48 | "hu" => "whois.nic.hu", |
49 | "ie" => "whois.domainregistry.ie", |
50 | "il" => "whois.isoc.org.il", |
51 | "in" => "whois.ncst.ernet.in", |
52 | "ir" => "whois.nic.ir", |
53 | "mc" => "whois.ripe.net", |
54 | "to" => "whois.tonic.to", |
55 | "tv" => "whois.tv", |
56 | "ru" => "whois.ripn.net", |
57 | "org" => "whois.pir.org", |
58 | "aero" => "whois.information.aero", |
59 | "nl" => "whois.domain-registry.nl" |
60 | ); |
61 |
62 | if (!isset($servers[$ext])){ |
63 | die('Error: No matching nic server found!'); |
64 | } |
65 |
66 | $nic_server = $servers[$ext]; |
67 |
68 | $output = ''; |
69 |
70 | // connect to whois server: |
71 | if ($conn = fsockopen ($nic_server, 43)) { |
72 | fputs($conn, $domain."\r\n"); |
73 | while(!feof($conn)) { |
74 | $output .= fgets($conn,128); |
75 | } |
76 | fclose($conn); |
77 | } |
78 | else { die('Error: Could not connect to ' . $nic_server . '!'); } |
79 |
80 | return $output; |
81 | } |
10. 通过Email发送PHP错误
01 | <?php |
02 |
03 | // Our custom error handler |
04 | function nettuts_error_handler($number, $message, $file, $line, $vars){ |
05 | $email = " |
06 | <p>An error ($number) occurred on line |
07 | <strong>$line</strong> and in the <strong>file: $file.</strong> |
08 | <p> $message </p>"; |
09 |
10 | $email .= "<pre>" . print_r($vars, 1) . "</pre>"; |
11 |
12 | $headers = 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; |
13 |
14 | // Email the error to someone... |
15 | error_log($email, 1, 'you@youremail.com', $headers); |
16 |
17 | // Make sure that you decide how to respond to errors (on the user's side) |
18 | // Either echo an error message, or kill the entire project. Up to you... |
19 | // The code below ensures that we only "die" if the error was more than |
20 | // just a NOTICE. |
21 | if ( ($number !== E_NOTICE) && ($number < 2048) ) { |
22 | die("There was an error. Please try again later."); |
23 | } |
24 | } |
25 |
26 | // We should use our custom function to handle errors. |
27 | set_error_handler('nettuts_error_handler'); |
28 |
29 | // Trigger an error... (var doesn't exist) |
30 | echo $somevarthatdoesnotexist; |
本文深入探讨了信息技术领域的多个关键方面,包括前端开发、后端开发、移动开发、游戏开发、大数据开发等。文章还涵盖了开发工具、嵌入式硬件、音视频基础与直播流媒体、图像处理AR特效、AI音视频处理、测试、基础运维、DevOps、操作系统、云计算厂商、自然语言处理、区块链、隐私计算、文档协作与知识管理、版本控制、项目管理与协作工具、有监督学习、无监督学习、半监督学习、强化学习、数据安全、数据挖掘、数据结构、算法等。每部分都以核心概念和实践应用为重点,为读者提供了一个全面的技术视野。
654

被折叠的 条评论
为什么被折叠?



