當前位置:首頁 » 編程語言 » 精簡php

精簡php

發布時間: 2022-08-17 06:51:46

php代碼優化問題

<?php
$path='lib/index.php';
if(isset($_POST['a'])&&$str=$_POST['a'])
$path='lib/'.$str.'.php';

if(is_file($path)){
$file=$path;
//dosomething......
}

② Php網站如何優化才好

優化網站,對於PHP來說主要有以下幾點

  • 代碼分析,找出耗時長或者卡頓的代碼加以優化。

  • 循環太多:循環太多就考慮如何去掉循環,或者優化循環體結構,包括每次提前計算好變數,不在循環體內做過多運算。

  • IO瓶頸:就是sql語句有缺陷,或者磁碟讀寫過慢,網路帶寬過低。sql優化包括索引優化,啟用redis或memcache,分表分庫等等優先順序從前到後,網上都有很多教程。磁碟讀寫慢,就要考慮上固態硬碟。帶寬就要聯系網路運營商解決

  • 精簡前端頁面。現在頁面功能越來越復雜,卡頓不一定是後台,前端出現問題也很多。包括頁面內容太多(適當縮減一部分網頁內容),js,css,圖片太大(對js,css進行壓縮,去掉冗餘代碼等。使用壓縮格式的圖片,如jpg格式控制圖片大小(盡量在100K甚至10K以內)啟用網頁緩存等)

  • 深度優化性能,包括採用更快的PHP(PHP7.2),更快的伺服器(Linux+nginx),更快的mysql(讀寫分離)等等。

③ php代碼簡化

可以把正則匹配封裝成一個函數,傳入str字元串就可以了,這樣比之前少寫幾段代碼

④ php如何將1000行代碼優化成100行

如何壓縮html代碼,讓html文件縮小優化

一、將table改為div布局 - TOP

盡量將table標簽布局html重構div布局,可以節約至少40%的代碼量。由於div代碼少於table布局的html網頁,所以搜索引擎索引權重也優於table布局的html網頁。

二、縮減精簡div、span、ul li等系列標簽 - TOP

布局DIV+CSS網頁時候,我們有時候可以節約一些DIV布局代碼,減少代碼量。
如下案例代碼:

<divclass="divcss5">

<ul>

<li>CSS學習去DIVCSS5li>

<li>我愛DIVCSS5li>

<li>DIV+CSS學習去DIVCSS5li>

ul>

div>

可以改為:

<ulclass="divcss5">

<li>CSS學習去DIVCSS5li>

<li>我愛DIVCSS5li>

<li>DIV+CSS學習去DIVCSS5li>

ul>

這樣可以節約一對div標簽,從而減少html代碼量,起到壓縮html作用。這樣直接對ul命名css樣式類,可以區別在一個頁面不同地方使用ul li列表標簽。

三、刪除多餘空格 - TOP

刪除多餘空格換行,可以有效地壓縮html代碼佔用位元組,一般在開發完成後可以對html中代碼進行刪除換行和空格內容。

可以藉助於DW軟體進行批量刪除html內標簽之間空格

如:

<divclass="divcss5">

<div ...>div>

div>

可以刪除空格與換行後:

<divclass="divcss5"><div ...>div>div>

這樣即可節約空格和換行所佔位元組。

注意的是,網頁發布版的可以藉助於DW進行刪除多餘空格與空行。如果要再編輯,再到DW軟體進行代碼格式化排版即可。

四、表格類型布局時候適當使用table替代div布局 - TOP

如果是本身是表格數據列表排版,我們最好選擇table,因為表格布局使用table優於div布局,使用table布局卻比div布局節約html標簽代碼和節約css樣式。

如下圖表格數據類型,建議採用TABLE標簽+CSS樣式布局

類似這種列表型table表格,推薦使用table標簽布局

五、網頁GZIP壓縮 - TOP

⑤ 有哪些適合練手的PHP項目

1. 項目名稱:輕量級 B2C 商城系統

項目簡介:本項目是一個擁有 PC 端 + H5 移動端的超輕量,功能強大的 B2C 商城系統。
技術實現:
核心框架:基於全新超輕量高性能Speed框架
JS框架:jQuery 1.10.2
移動端JS框架:Zepto 1.2.0
圖表庫:Flot 0.8.3
富文本編輯器:網路 精簡版 UMeditor
JS模板引擎:Juicer 0.6.8
運行環境:
操作系統: Windows / Linux / Unix
Web 伺服器:Apache / Nginx / IIS
PHP 版本:5.2 及以上
MySQL 版本:5.0 及以上
生產環境推薦:Linux + Nginx + PHP5.5 + MySQL5.6
項目地址:cigery/verydows - 碼雲
2、項目名稱:基於 PHP 的輕量級路由器

項目簡介:非常輕量級的路由器。無依賴、簡潔、速度快、自定義性強。
輕量級且速度快,查找速度不受路由數量的影響。
支持路由參數定義,以及路由選項(比如設定 domains、schema 等檢查限制)。
支持請求方法:GET POST PUT DELETE HEAD OPTIONS ...
支持事件: found notFound execStart execEnd execError,當觸發事件時你可以做一些事情(比如記錄日誌等)。
支持動態獲取 action 名。支持設置方法執行器(actionExecutor),通過方法執行器來自定義調用真實請求方法。
支持自動匹配路由到控制器就像 yii 一樣,請參看配置項 autoRoute。
支持通過方法 SRouter::dispatch($path, $method) 手動調度一個路由。
你也可以不配置任何東西,它也能很好的工作。
項目地址:inhere/php-srouter - 碼雲
3. 項目名稱:輕量級論壇社區系統
項目簡介:本項目是一個基於 CodeIgniter 框架開發的 PHP 新型社區系統,她輕量小巧、簡單易用、強大高效,又簡稱 」STB(燒餅 BBS)。
項目地址:燒餅/startbbs - 碼雲
4. 項目名稱:基於 PHP 的三維驗證碼
<img src="https://pic2.mg.com/50/v2-_hd.png" data-rawwidth="360" data-rawheight="80" class="content_image" width="360">
項目簡介:打破傳統的,基於 PHP 的 3d 英文字母驗證碼,圖片粒子化,機器難以識別邊界,破解難度極大。
項目地址:Quekie/Safe 3D Identifying Code
5. 項目名稱:基於 PHP 的多進程網路爬蟲框架

<img src="https://pic4.mg.com/50/v2-_hd.jpg" data-rawwidth="650" data-rawheight="800" class="origin_image zh-lightbox-thumb" width="650" data-original="https://pic4.mg.com/v2-_r.jpg">
項目簡介:Beanbun 是一個簡單可擴展的爬蟲框架,支持分布式,支持守護進程模式與普通模式,守護進程模式基於 Workerman,下載器基於 Guzzle。
特點:
支持守護進程與普通兩種模式(守護進程模式只支持 Linux 伺服器)
默認使用 guzzle 進行爬取
支持分布式
支持內存、Redis 等多種隊列方式
支持自定義URI過濾
支持廣度優先和深度優先兩種爬取方式
遵循 PSR-4 標准
爬取網頁分為多步,每步均支持自定義動作(如添加代理、修改 user-agent 等)
靈活的擴展機制,可方便的為框架製作插件:自定義隊列、自定義爬取方式...
項目地址:Kiddyu/Beanbun - 碼雲

⑥ php 簡單的程序設計(輪流攻擊)

胡亂寫了個簡單程序,不過測試程序的時候發現,你的傷害計算有很大的問題。
上面說道:實際傷害=A部隊攻擊力-B部隊防禦力
那麼攻擊最高的騎兵攻擊是30,打在防最低為5的弓兵身上,那麼傷害等於30-5=25,這里倒是沒多大問題,但是又看
實際傷害/B部隊單位血量=本次攻擊殺死敵兵數量,余數進位.
那麼殺死弓兵的數量就等於25/200=0.125 按余數進位也就是1而已 0.125已經是裡面最大的傷害了,所以造成每次無論任意兵種攻擊任意兵種,死亡的單位都是1.
附程序(沒怎麼思考,期待樓下更精簡的演算法):
<?php

//初始化團隊
$team_a=array(
"5"=>set_c("軍團A騎兵甲","cavalry"),
"11"=>set_c("軍團A弓兵甲","archer"),
"14"=>set_c("軍團A弓兵乙","archer"),
"8"=>set_c("軍團A步兵甲","infantry"),
"7"=>set_c("軍團A步兵乙","infantry")
);
$team_b=array(
"8"=>set_c("軍團B騎兵甲","cavalry"),
"9"=>set_c("軍團B騎兵乙","cavalry"),
"13"=>set_c("軍團B弓兵甲","archer"),
"5"=>set_c("軍團B步兵甲","infantry"),
"10"=>set_c("軍團B步兵乙","infantry")
);
//按速度對團隊進行排序
$team_a=spe_sort($team_a);
$team_b=spe_sort($team_b);
//初始化戰斗單位
function set_c($name,$type){
//初始化兵種 infantry 步兵 archer弓兵 cavalry騎兵,兵種=>(攻,防,HP,速度,數量).
$arm=array(
"infantry"=>array("tak"=>20,"def"=>10,"hp"=>250,"spe"=>"20|24","amo"=>120),
"archer"=>array("tak"=>25,"def"=>5,"hp"=>200,"spe"=>"25|27","amo"=>100),
"cavalry"=>array("tak"=>30,"def"=>15,"hp"=>300,"spe"=>"28|30","amo"=>80)
);
$d=$arm[$type];
$d["name"]=$name;
$spe=explode("|",$d["spe"]);
$d["spe"]=rand($spe[0],$spe[1]);
return $d;
}
//速度排序
function spe_sort($array){
foreach($array as $key => $value)
{
$temp[$key] = $value['spe'];
}
arsort($temp);
foreach($temp as $key => $value)
{
$result[$key] = $array[$key];
}
return $result;
}
//戰斗函數 $active=攻擊團隊 $passive=被攻擊團隊
function fight($active,$passive){
//目標選擇規則
$targeting=array(7,4,10,1,13,8,5,11,2,14,9,6,12,3,15);
foreach($active as $k=>$a)
{ foreach($targeting as $t)
{
if(isset($passive[$t]))
{
$hurt=$active[$k]["tak"]-$passive[$t]["def"];
$kill=ceil($hurt/$passive[$t]["hp"]);
$passive[$t]["amo"]=$passive[$t]["amo"]-$kill;
echo "<font color='#0000FF'>".$active[$k]["name"]."</font> 攻擊了 <font color='#0000FF'>". $passive[$t]["name"] ."</font>,共傷害<font color='#ff000'> $hurt </font>點,殺死<font color='#ff000'> $kill </font>個單位.剩餘".$passive[$t]["amo"]."個單位</br>";

if( $passive[$t]["amo"]<=0)
{
echo "×<font color='#ff000'>".$passive[$t]["name"]."</font>被消滅了!</br>";
unset($passive[$t]);
if(!count($passive)){echo "<font color='#ff000'>該軍團已全軍覆沒!戰斗結束....</font>"; die();}
}
break;
}

}
}
echo "-------------------本回合結束,換對方攻擊-------------------</br>";
fight($passive,$active);
}
echo "戰斗開始!</br>";
fight($team_a,$team_b);
?>

⑦ 跪求一個極精簡的PHP新聞管理系統CMS 只要非常簡單的功能實現: 新聞顯示,後台登陸,後台管理

你自己寫了,要不就看下PHP100視頻裡面那個留言本的製作。

⑧ php加密授權以及打包怎麼做

1關於PHP打包

把PHP解釋器和PHP項目打包成一個安裝包完全沒有問題的,我甚至把PHP解釋器打包到Android手機上跑都沒問題.因為PHP官方提供了Windows版本的二進制包,所以連自己編譯這一步都省了,為了精簡PHP解釋器,你可以把你不需要的擴展都刪除掉,比如intl擴展及其依賴的ICU,精簡後打包估計解釋器能小於5個MB.因為PHP內置了HTTP伺服器和SQLite資料庫,所以客戶端連Apache和MySQL也不依賴了,直接就能跑PHP項目,而且還省資源.

2.關於PHP代碼保護

PHP7的opcache支持用opcache.file_cache導出PHP腳本對應的二進制opcode,這些opcode是跟操作系統和PHP解釋器版本相關的,能起到一定的代碼保護的作用.另外,Zend Guard和ionCube也提供了付費的PHP代碼加密服務.

3.授權

比如可以在加密過的PHP代碼里判斷$_SERVER['SERVER_NAME'],如果不是授權時綁定的域名,就直接拒絕服務.如果還有什麼不懂不明白的,你可以和我在後盾人看看教材找找答案,時間久了,就都清楚了,希望能幫到你

⑨ PHP代碼簡化 下面的代碼怎麼樣優化一樣呢兩個同時執行

第二次的類別修改成功應該是下面的那個,還是不明白你想實現什麼功能?

⑩ PHP幫我看下這個代碼如何精簡下。$tciid是二維數組,$myFile是一維數組

<?php
$tciid=(unique_arr($tciid,true));
$myFile = include("comm/converter.php");

$arr=array();
foreach(array_values($tciid) as $tmp){
$arr=array_merge($arr,array_values($tmp));
}
foreach($myFile as $file){
$m=explode(",",$file);
if(in_array($m[0],$arr)){
?>
<li><span><a href="<?=$m[0]?>" title="<?= $m[2] ?>"><?php echo $m[2] ?></a></span></li>
<?
}
}
?>

熱點內容
php獲取調用的方法 發布:2025-01-20 04:25:45 瀏覽:458
SMPT郵箱伺服器地址 發布:2025-01-20 04:04:16 瀏覽:662
抖影工廠為什麼安卓手機用不了 發布:2025-01-20 04:00:05 瀏覽:386
我的世界網易版怎麼進朋友伺服器 發布:2025-01-20 03:50:10 瀏覽:684
phpsession跳轉頁面跳轉 發布:2025-01-20 03:47:20 瀏覽:540
深圳解壓工廠 發布:2025-01-20 03:41:44 瀏覽:690
linux字體查看 發布:2025-01-20 03:41:30 瀏覽:742
pythonextendor 發布:2025-01-20 03:40:11 瀏覽:199
為什麼安卓手機儲存越來越少 發布:2025-01-20 03:40:07 瀏覽:925
演算法和人性 發布:2025-01-20 03:28:31 瀏覽:473