原创 laravel日誌自建通道解決定時任務運行後日志無權限問題

問題場景: crontab運行php artisan腳本產生的日誌文件和laravel接口產生的文件都是laravel.log,由於用戶所屬不同的原因,如果是crontab先運行,則laravel.log的歸屬用戶爲root;而larav

原创 docker內給php安裝擴展的三種方式

最近做了個php-fpm-alpine的dockerfile文件,基於php7.4.6和alpine3.11;初始文件還是從官方拿的,但是我們日常使用php會用到很多初始鏡像內不存在的擴展,所以就總結了一下在docker內爲php安裝擴展

原创 php關於邏輯運算和邏輯短路

1,在邏輯運算裏,整形0,浮點型0.0,字符串型 “”,“0”,數組型array(),都屬於false ps:字符串類型“0.0” 不屬於false,屬於true; 例: $a = 0; $b = 1; if($a&&$b){

原创 蜘蛛程序抓取頁面內容並按格式插入數據庫

<?php namespace app\api\controller; use think\Db; /** * 策略業績報表蜘蛛程序 * Description of Spiderreport * Date 2017-11-14

原创 在數據庫軟件裏設置mysql最大導入包大小和單表大小

失敗背景:通過sqlyog向本地mysql數據庫中導入sql文件導入失敗, 提示: Got a packet bigger than 'max_allowed_packet' bytes 1.在sqlyog中進入mysql的命令界面

原创 獲取無限極菜單列表

數據表基本必須字段:id,name,pid,path /** * 獲取菜單欄目列表 * @param int $pid 父級id * @return array */ public function getMenuCatego

原创 zencart簡化註冊

簡化註冊流程是蠻人性化的一個體現,ZenCart在註冊項目設置時比較累贅,如何在註冊時區分必填和選填呢? 1、在後臺-->Configuration商店設置-->Customer Details客戶資料: (1. 將稱呼字段、生日字段(可

原创 PHP跨域問題解決方案

首先,我們要明白什麼是跨域: 跨域,指的是瀏覽器不能執行其他網站的腳本。它是由瀏覽器的同源策略造成的,是瀏覽器施加的安全限制。 瀏覽器的同源策略: 同源是指,域名,協議,端口均相同,有任一不相同皆將造成跨域 明白了這些,我們來說說解決跨域

原创 composer 簡單使用

1,局部安裝 在網站根目錄 放入 composer.phar 執行文件,以及composer.json文件(內容依賴包名稱和版本) 例: "require": { "php": ">=5.4.0", "topthink/

原创 Thinkphp5鉤子與行爲小實例

主要分爲三個功能點: 一:行爲定義 方法1,一般寫在behaviour文件夾,例如 app\index\behavior\Actionlist 類 /* * 測試行爲類 */ namespace app\index\behavior;

原创 nginx反向代理之後服務端HTTP_X_FORWARDED_FOR和HTTP_X_REAL_IP獲取不到客戶端ip地址

進過nginx的反向代理之後,我們在服務端獲取$_SERVER['HTTP_X_FORWARDED_FOR']或者$_SERVER['HTTP_X_REAL_IP']時,往往獲取不到客戶端的外網ip地址,此時需要在做反向代理時設置: l

原创 php文件流下載和預覽文件

下載文件: //讀取文件 $fileSize = file_put_contents($fileDir.$fileName,$remoteFile); if(!$fileSize){

原创 php取整函數和隨機數函數

A. ceil 是向上進位得到一個值的函數; B. floor 是舍掉小數位得到一個值的函數; C. round 是用來四捨五入的函數   A. ceil() 函數向上舍入爲最接近的整數。 說明: 返回不小於 x 的下一個整數,x 如果有

原创 跨域session不一致問題解決方案

原理:代碼允許攜帶cookie操作:      A.後端代碼加header          header("Access-Control-Allow-Origin:www.aaa.com"); //允許跨域地址(*,域名,ip) he

原创 laravel自定義訪問器屬性不顯示?

定義一個訪問器 get名字駝峯式Attribute 例如:getStatusNameAttribute對應的是status_name,如果是獲取的時候,獲取自動調用這個訪問器,如果你沒有獲取是不會調用的,數組是不會自動顯示,我們需要在數組