比较有用的php代码片段
一 从网页中提取关键词
$meta = get_meta_tags(<span style="color: #800000;">'</span><span style="color: #800000;">http://www.emoticode.net/</span><span style="color: #800000;">'</span><span style="color: #000000;">);$keywords </span>= $meta[<span style="color: #800000;">'</span><span style="color: #800000;">keywords</span><span style="color: #800000;">'</span><span style="color: #000000;">];</span><span style="color: #008000;">//</span><span style="color: #008000;"> Split keywords</span>$keywords = explode(<span style="color: #800000;">'</span><span style="color: #800000;">,</span><span style="color: #800000;">'</span><span style="color: #000000;">, $keywords );</span><span style="color: #008000;">//</span><span style="color: #008000;"> Trim them</span>$keywords = array_map( <span style="color: #800000;">'</span><span style="color: #800000;">trim</span><span style="color: #800000;">'</span><span style="color: #000000;">, $keywords );</span><span style="color: #008000;">//</span><span style="color: #008000;"> Remove empty values</span>$keywords =<span style="color: #000000;"> array_filter( $keywords );print_r( $keywords );</span>
二 查找页面上的所有链接
<span style="color: #000000;">使用DOM,你可以在任意页面上抓取链接,示例如下。</span>
- $html = file_get_contents('http://www.example.com');$dom = new DOMDocument();@$dom->loadHTML($html);// grab all the on the page$xpath = new DOMXPath($dom);$hrefs = $xpath->evaluate("/html/body//a");for ($i = 0; $i $hrefs->length; $i++) {$href = $hrefs->item($i);$url = $href->getAttribute('href');echo $url.'
';}三 创建数据URI
数据URI可以帮助将图像嵌入到HTML/CSS/<span style="color: #000000;">JS中,从而节省HTTP请求。下面的函数可以利用$file创建数据URI。 function data_uri($file, $mime) { $contents</span>=<span style="color: #000000;">file_get_contents($file); $base64</span>=<span style="color: #000000;">base64_encode($contents); echo </span><span style="color: #800000;">"</span><span style="color: #800000;">data:$mime;base64,$base64</span><span style="color: #800000;">"</span><span style="color: #000000;">;}</span>
四 下载和保存远程图片到你的服务器
<span style="color: #000000;">当你在搭建网站时,很可能会从远程服务器上下载图片保存到你自己的服务器上,下面的代码就可以帮助你实现这个功能。$image </span>= file_get_contents(<span style="color: #800000;">'</span><span style="color: #800000;">http://www.php100.com/image.jpg</span><span style="color: #800000;">'</span><span style="color: #000000;">);file_put_contents(</span><span style="color: #800000;">'</span><span style="color: #800000;">/images/image.jpg</span><span style="color: #800000;">'</span>, $image); <span style="color: #008000;">//</span><span style="color: #008000;">Where to save the image</span>
五 移除Microsoft Word HTML标签
<span style="color: #000000;"> 当你使用Microsoft Word时,会创建很多标签tag,比如font、span、style、class等,这些标签在Word中十分有用,但当你从Word中把文本粘贴到网页上,就会出现很多没用的标签。下面实用的函数可以帮助你清除所有的Word HTML标签。function cleanHTML($html) {</span><span style="color: #808080;">///</span> <span style="color: #808080;">///</span><span style="color: #008000;"> Removes all FONT and SPAN tags, and all Class and Style attributes.</span><span style="color: #808080;">///</span><span style="color: #008000;"> Designed to get rid of non-standard Microsoft Word HTML tags.</span><span style="color: #808080;">///</span> <span style="color: #008000;">//</span><span style="color: #008000;"> start by completely removing all unwanted tags</span><span style="color: #000000;">$html </span>= ereg_replace(<span style="color: #800000;">"</span><span style="color: #800000;">]*></span><span style="color: #800000;">"</span>,<span style="color: #800000;">""</span><span style="color: #000000;">,$html);</span><span style="color: #008000;">//</span><span style="color: #008000;"> then run another pass over the html (twice), removing unwanted attributes</span><span style="color: #000000;">$html </span>= ereg_replace(<span style="color: #800000;">"</span><span style="color: #800000;">]*)(class|lang|style|size|face)=(</span><span style="color: #800000;">"</span>[^<span style="color: #800000;">"</span><span style="color: #800000;">]*</span><span style="color: #800000;">"</span>|<span style="color: #800000;">'</span><span style="color: #800000;">[^</span><span style="color: #800000;">'</span>]*<span style="color: #800000;">'</span><span style="color: #800000;">|[^>]+)([^>]*)>","",$html);</span>$html = ereg_replace(<span style="color: #800000;">"</span><span style="color: #800000;">]*)(class|lang|style|size|face)=(</span><span style="color: #800000;">"</span>[^<span style="color: #800000;">"</span><span style="color: #800000;">]*</span><span style="color: #800000;">"</span>|<span style="color: #800000;">'</span><span style="color: #800000;">[^</span><span style="color: #800000;">'</span>]*<span style="color: #800000;">'</span><span style="color: #800000;">|[^>]+)([^>]*)>","",$html);</span><span style="color: #0000ff;">return</span><span style="color: #000000;"> $html}</span>
六 检测浏览器语言
<span style="color: #000000;">如果你的网站是多种语言的,下面的代码可以帮助你检测浏览器语言,它会返回客户端浏览器的默认语言。function get_client_language($availableLanguages, $</span><span style="color: #0000ff;">default</span>=<span style="color: #800000;">'</span><span style="color: #800000;">en</span><span style="color: #800000;">'</span><span style="color: #000000;">){ </span><span style="color: #0000ff;">if</span> (isset($_SERVER[<span style="color: #800000;">'</span><span style="color: #800000;">HTTP_ACCEPT_LANGUAGE</span><span style="color: #800000;">'</span><span style="color: #000000;">])) { $langs</span>=explode(<span style="color: #800000;">'</span><span style="color: #800000;">,</span><span style="color: #800000;">'</span>,$_SERVER[<span style="color: #800000;">'</span><span style="color: #800000;">HTTP_ACCEPT_LANGUAGE</span><span style="color: #800000;">'</span><span style="color: #000000;">]); </span><span style="color: #0000ff;">foreach</span> ($langs <span style="color: #0000ff;">as</span><span style="color: #000000;"> $value){ $choice</span>=substr($value,<span style="color: #800080;">0</span>,<span style="color: #800080;">2</span><span style="color: #000000;">); </span><span style="color: #0000ff;">if</span><span style="color: #000000;">(in_array($choice, $availableLanguages)){ </span><span style="color: #0000ff;">return</span><span style="color: #000000;"> $choice; } } } </span><span style="color: #0000ff;">return</span> $<span style="color: #0000ff;">default</span><span style="color: #000000;">;}</span>
七 保存请求信息到本地
file_put_contents(<span style="color: #800000;">'</span><span style="color: #800000;">/tmp/all.log</span><span style="color: #800000;">'</span>,<span style="color: #800000;">'</span><span style="color: #800000;">mapping</span><span style="color: #800000;">'</span>.date(<span style="color: #800000;">"</span><span style="color: #800000;">m-d H:i:s</span><span style="color: #800000;">"</span>).<span style="color: #800000;">"</span><span style="color: #800000;">\n</span><span style="color: #800000;">"</span>,FILE_APPEND);
八 excel相互转换日期
<span style="color: #0000ff;">//如果去获取某个excel日期(格式为:2016-03-12),那么获取到的是数字,需要经过转换才能恢复<br>public</span> function excelTime($date, $time = <span style="color: #0000ff;">false</span><span style="color: #000000;">) { </span><span style="color: #0000ff;">if</span>(function_exists(<span style="color: #800000;">'</span><span style="color: #800000;">GregorianToJD</span><span style="color: #800000;">'</span><span style="color: #000000;">)){ </span><span style="color: #0000ff;">if</span><span style="color: #000000;"> (is_numeric( $date )) { $jd </span>= GregorianToJD( <span style="color: #800080;">1</span>, <span style="color: #800080;">1</span>, <span style="color: #800080;">1970</span><span style="color: #000000;"> ); $gregorian </span>= JDToGregorian( $jd + intval ( $date ) - <span style="color: #800080;">25569</span><span style="color: #000000;"> ); $date </span>= explode( <span style="color: #800000;">'</span><span style="color: #800000;">/</span><span style="color: #800000;">'</span><span style="color: #000000;">, $gregorian ); $date_str </span>= str_pad( $date [<span style="color: #800080;">2</span>], <span style="color: #800080;">4</span>, <span style="color: #800000;">'</span><span style="color: #800000;">0</span><span style="color: #800000;">'</span><span style="color: #000000;">, STR_PAD_LEFT ) .</span><span style="color: #800000;">"</span><span style="color: #800000;">-</span><span style="color: #800000;">"</span>. str_pad( $date [<span style="color: #800080;">0</span>], <span style="color: #800080;">2</span>, <span style="color: #800000;">'</span><span style="color: #800000;">0</span><span style="color: #800000;">'</span><span style="color: #000000;">, STR_PAD_LEFT ) .</span><span style="color: #800000;">"</span><span style="color: #800000;">-</span><span style="color: #800000;">"</span>. str_pad( $date [<span style="color: #800080;">1</span>], <span style="color: #800080;">2</span>, <span style="color: #800000;">'</span><span style="color: #800000;">0</span><span style="color: #800000;">'</span><span style="color: #000000;">, STR_PAD_LEFT ) . ($time </span>? <span style="color: #800000;">"</span><span style="color: #800000;"> 00:00:00</span><span style="color: #800000;">"</span> : <span style="color: #800000;">''</span><span style="color: #000000;">); </span><span style="color: #0000ff;">return</span><span style="color: #000000;"> $date_str; } }</span><span style="color: #0000ff;">else</span><span style="color: #000000;">{ </span><span style="color: #008000;">//</span><span style="color: #008000;"> $date=$date>25568? $date+1:25569;</span> <span style="color: #008000;">/*</span><span style="color: #008000;">There was a bug if Converting date before 1-1-1970 (tstamp 0)</span><span style="color: #008000;">*/</span><span style="color: #000000;"> $ofs</span>=(<span style="color: #800080;">70</span> * <span style="color: #800080;">365</span> + <span style="color: #800080;">17</span>+<span style="color: #800080;">2</span>) * <span style="color: #800080;">86400</span><span style="color: #000000;">; $date </span>= date(<span style="color: #800000;">"</span><span style="color: #800000;">Y-m-d</span><span style="color: #800000;">"</span>,($date * <span style="color: #800080;">86400</span>) - $ofs).($time ? <span style="color: #800000;">"</span><span style="color: #800000;"> 00:00:00</span><span style="color: #800000;">"</span> : <span style="color: #800000;">''</span><span style="color: #000000;">); </span><span style="color: #0000ff;">return</span><span style="color: #000000;"> $date; } }</span>
9 json与数据相互转换
<span style="color: #800080;">1</span><span style="color: #000000;"> json转换成数组$json </span>= <span style="color: #800000;">'</span><span style="color: #800000;">[{"id":"22","name":"33","descn":"44"}]</span><span style="color: #800000;">'</span>; <span style="color: #008000;">//</span><span style="color: #008000;">json格式的数组转换成 php的数组</span>$arr =<span style="color: #000000;"> (Array)json_decode($json);echo $arr[</span><span style="color: #800080;">0</span>]->id; <span style="color: #008000;">//</span><span style="color: #008000;">用对象的方式访问(这种是没有转换成数组,而是转换成对象的情况</span>
<span style="color: #800080;">2</span><span style="color: #000000;"> 数组转换成json$json_arr </span>= array(<span style="color: #800000;">'</span><span style="color: #800000;">WebName</span><span style="color: #800000;">'</span>=><span style="color: #800000;">'</span><span style="color: #800000;">11</span><span style="color: #800000;">'</span>,<span style="color: #800000;">'</span><span style="color: #800000;">WebSite</span><span style="color: #800000;">'</span>=><span style="color: #800000;">'</span><span style="color: #800000;">11</span><span style="color: #800000;">'</span><span style="color: #000000;">);$php_json </span>= json_encode($json_arr); <span style="color: #008000;">//</span><span style="color: #008000;">把php数组格式转换成 json 格式的数据</span>echo $php_json;

PHP在現代編程中仍然是一個強大且廣泛使用的工具,尤其在web開發領域。 1)PHP易用且與數據庫集成無縫,是許多開發者的首選。 2)它支持動態內容生成和麵向對象編程,適合快速創建和維護網站。 3)PHP的性能可以通過緩存和優化數據庫查詢來提升,其廣泛的社區和豐富生態系統使其在當今技術棧中仍具重要地位。

在PHP中,弱引用是通過WeakReference類實現的,不會阻止垃圾回收器回收對象。弱引用適用於緩存系統和事件監聽器等場景,需注意其不能保證對象存活,且垃圾回收可能延遲。

\_\_invoke方法允許對象像函數一樣被調用。 1.定義\_\_invoke方法使對象可被調用。 2.使用$obj(...)語法時,PHP會執行\_\_invoke方法。 3.適用於日誌記錄和計算器等場景,提高代碼靈活性和可讀性。

Fibers在PHP8.1中引入,提升了並發處理能力。 1)Fibers是一種輕量級的並發模型,類似於協程。 2)它們允許開發者手動控制任務的執行流,適合處理I/O密集型任務。 3)使用Fibers可以編寫更高效、響應性更強的代碼。

PHP社區提供了豐富的資源和支持,幫助開發者成長。 1)資源包括官方文檔、教程、博客和開源項目如Laravel和Symfony。 2)支持可以通過StackOverflow、Reddit和Slack頻道獲得。 3)開發動態可以通過關注RFC了解。 4)融入社區可以通過積極參與、貢獻代碼和學習分享來實現。

PHP和Python各有優勢,選擇應基於項目需求。 1.PHP適合web開發,語法簡單,執行效率高。 2.Python適用於數據科學和機器學習,語法簡潔,庫豐富。

PHP不是在消亡,而是在不斷適應和進化。 1)PHP從1994年起經歷多次版本迭代,適應新技術趨勢。 2)目前廣泛應用於電子商務、內容管理系統等領域。 3)PHP8引入JIT編譯器等功能,提升性能和現代化。 4)使用OPcache和遵循PSR-12標準可優化性能和代碼質量。

PHP的未來將通過適應新技術趨勢和引入創新特性來實現:1)適應云計算、容器化和微服務架構,支持Docker和Kubernetes;2)引入JIT編譯器和枚舉類型,提升性能和數據處理效率;3)持續優化性能和推廣最佳實踐。


熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

Dreamweaver Mac版
視覺化網頁開發工具

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

SAP NetWeaver Server Adapter for Eclipse
將Eclipse與SAP NetWeaver應用伺服器整合。

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

PhpStorm Mac 版本
最新(2018.2.1 )專業的PHP整合開發工具