如何讓瀏覽器重新載入css、js、圖檔

參考網址:精讚

按下 F5是重新整理但使用cache,但按下CTRL+F5是全部重新載入

發表於 軟體使用 | 發表迴響

Powershell : Run as Administrator from command.

參考網址:Neo Insight 

如果你想要從Command(命令提示字元)直接執行Powershell然後使用管理員模式,你必須使用下列方式執行Command (命令提示字元) 。

下方的命令是打在Dos Command裡。
 

Start-Process powershell -ArgumentList '-File C:\ABC.ps1' -Verb runAs 

 

原理上是透過命提示字元(一般身分)先呼叫Powershell.exe(一般身分)去執行Powershell(管理員身分)來跑 ABC.PS1程序

發表於 程式設計 | 發表迴響

[php]將陣列組成字串

參考網址:凡走過就該留下痕跡
sql語法中常會用到 in (11,12,13,14) 的語法
一般會將列表的值放在陣列中,要如何組成sql的語法呢?
可以這樣寫

//組合組別字串給sql用
//傳入組別陣列
//傳回組合字串(11,12,13,14)
function get_in_str($g_arr) {
	//$sql_in_str = "(";
    foreach($g_arr as $k => $v)  {
    	if($sql_in_str)
    	    $sql_in_str .= ",{$v}";
    	else
    	    $sql_in_str = $v;
    }
    
    $sql_in_str = "(".$sql_in_str.")";
    
    return $sql_in_str;
}

 

今天發現一個更好用的方法
 

$var = array(11,12,13,14);
$check_str = implode(",", $var);

//組成 11,12,13,14

 

發表於 程式設計 | 發表迴響

[php]PHP 取得目前網址技巧分享

參考網址:wibibi

在 PHP 中取得目前網址的方式可以透過 $_SERVER 組合的方式取得,這樣的方式稍微有點麻煩,不過使用起來還算相當簡單,首先我們先來認識幾個常用到的 $_SERVER。

$_SERVER[‘HTTP_HOST’]
$_SERVER[‘REQUEST_URI’]
$_SERVER[‘PHP_SELF’]
$_SERVER[‘QUERY_STRING’]

假設我們的網址是 http://www.wibibi.com/test.php?tid=333

則以上 $_SERVER 分別顯示結果會是

echo $_SERVER[‘HTTP_HOST’]; //顯示 www.wibibi.com
echo $_SERVER[‘REQUEST_URI’]; //顯示 /test.php?tid=222
echo $_SERVER[‘PHP_SELF’]; //顯示 /test.php
echo $_SERVER[‘QUERY_STRING’]; //顯示 tid=222

透過這幾個 $_SERVER,我們已經取得了網址的各個部分,接著就是把網址給組合起來

$URL='http://'.$_SERVER[‘HTTP_HOST’].$_SERVER[‘REQUEST_URI’];
echo $URL;

這樣就可以順利取得現在的網址囉!這只是個簡單的範例而已,如果網址結構較為複雜,可以調用更多的 $_SERVER 來取得詳細的部分,請參考 php.net 的 $_SERVER 介紹。

發表於 程式設計 | 發表迴響

[wsl]成為寫PHP程式測試環境

目前寫PHP程式的測試環境是用uniform server,架設及操作使用皆十分方便,唯一的缺點是執行效能,點個網頁得等上2-3秒的時間,爬文也沒找到解決的方案。最近WSL2興起,於是想想是不是可以用來架設測試環境,經過幾天的嘗試,發現效能竟然不錯。以下是架設的過程。

安裝WSL2

​手動下載 Windows 子系統 Linux 版散發版本套件 https://docs.microsoft.com/zh-tw/windows/wsl/install-manual
使用ubuntu 16.04
安裝散發版本 PowerShell  Add-AppxPackage .\app_name.appx

★★★安裝相關套件
apt update
apt install tasksel
安裝LAMP server

apt install phpmyadmin

★★★在 Windows 10 中將 WSL(Ubuntu) 重設
https://blog.0t2.me/reset-wsl-in-windows-10/
windows設定 –>應用程式 –>ubuntu16.04 –> 進階選項–>重設

★★★Ubuntu 14.04更改Apache網站根目錄  https://www.itread01.com/p/163145.html
修改檔案:/etc/apache2/sites-enabled/000-default
在文件中找到 DocumentRoot 在後面修改你要放置網頁檔案的目錄
DocumentRoot /mnt/d/sport

大多數教程只是到了這一步!!然而這樣是有問題的。
還需要配置Apache2.conf檔案![這裡寫圖片描述](http://img.blog.csdn.net/20160407143221995)
<Directory /mnt/d/sport/>
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
</Directory>

修改完後重啟apache2伺服器即可,重啟命令: sudo /etc/init.d/apache2 restart

 

★★★WSL檔案放在
%LOCALAPPDATA%\Packages\<PackageFamilyName>\LocalState\<disk>.vhdx
CanonicalGroupLimited.Ubuntu16.04onWindows_79rhkp1fndgsc
C:\Users\sairwolf\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu16.04onWindows_79rhkp1fndgsc\LocalState


★★★https://blog.miniasp.com/post/2020/07/26/Multiple-Linux-Dev-Environment-build-on-WSL-2
關閉 WSL Distro 執行
關閉特定 WSL Distro 執行

wsl -t WLinux
關閉所有 WSL Distro 執行(等同於關閉 VM 執行)

wsl –shutdown
移除 WSL Distro 版本
注意:所有該 WSL Distro 下所有的檔案,都會被全數刪除,刪除後無法復原喔!

wsl.exe –unregister WLinux2


★★★安裝php5.6
http://dchesmis.blogspot.tw/2016/09/ubunt-1604php5x.html
sudo add-apt-repository ppa:ondrej/php
sudo apt-get update
sudo apt-get install php5.6
sudo apt-get install php5.6-mbstring php5.6-mcrypt php5.6-mysql php5.6-xml php5.6-gd php5.6-zip

從 php7 切換到 php5:
         sudo a2dismod php7.0 ; sudo a2enmod php5.6 ; sudo service apache2 restart
        用 phpinfo(); 查看版本

 
     CLI:
          sudo update-alternatives -set php /usr/bin/php5.6
      sudo php -v

ppa:ondrej/php 已不支援ubuntu 16.04(2022/10/29補記)
https://launchpad.net/

★★★設定mysql 模式
關閉Ubuntu預設mysql5.7版的strict mode設定方法(嚴格模式)
1、SSH連線到伺服器的root,找到以下路徑,並建立一個disable_strict_mode.cnf檔案
/etc/mysql/conf.d/disable_strict_mode.cnf <-建立檔案
2、打開文件並寫入以下語法:
[mysqld]
sql_mode=IGNORE_SPACE,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
3、輸入指令重新啟用mysql
sudo service mysql restart
為了確認strict mode模式是不是已經被關閉了,可以在phpMyAdmin的sql中輸入SELECT @@GLOBAL.sql_mode進行測試
如果顯示IGNORE_SPACE,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FO則表示strict mode模式已經被關閉,恭喜您可以脫離苦海了。

★★★phpmyadmin設定連線時間
一、修改 /etc/php.ini
設定系統逾時的秒數
session.gc_maxlifetime = 86400
重啟 apache 生效

二、修改 /path/to/phpmyadmin 設定檔
到你安裝phpmyadmin的目錄/etc/phpmyadmin
理論上在 phpmyadmin的根目錄下應該有 config.inc.php 這個檔案,如果沒有的話,請將sample設定檔拿來用:
# cp config.sample.inc.php config.inc.php
修改config.inc.php
最上面加入一行,設定時間(秒數)即可
$cfg[‘LoginCookieValidity’] = 86400;

★★★目前未解決的問題
1.無法設定固定IP:暫時用hEdit_x64編輯hosts檔,新增wsl 指向動態IP來解決
2.ssh連入時無法用密碼登入,只能用public key [修改/etc/sshd_config  設定 PasswordAuthentication yes 就可以了]
3..sh檔無法執行 解決方法寫bat
例service_start.bat
 

REM wsl.exe --shutdown
wsl.exe -u root service ssh start
wsl.exe -u root service mysql start
wsl.exe -u root service apache2 start
PAUSE


hosts

 

127.0.0.1       localhost
::1             localhost
::1             lo
::1             w.lo

localhost 會自動導向wsl主機,如要少打一些字記得加入 ::1 的轉向。
w.lo可以讓瀏覽器認得這是一個網址,直接打lo瀏覽器會當成搜尋字串。

在windows 的CMD命令提示字元視窗執行wsl指令就可以進ubuntu

 

目前WSL2沒有像VM那樣的網路橋接器功能,所以其他機器無法透過IP存取WSL2裡的資源,翻了github找到一個解法,用windows的netsh把port映射到WSL2。
參考文件:Joe Huang

1.開啟power shell 執行外部script的權限
以系統管理員身份執行power shell並執行以下指令
PS C:\> Set-ExecutionPolicy RemoteSigned
選擇全部皆是

2.執行下面的script
其他的機器可以成功的連入,檔案通知的機制也能正常運作
 

$remoteport = bash.exe -c "ifconfig eth0 | grep 'inet '"
$found = $remoteport -match '\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}';

if( $found ){
  $remoteport = $matches[0];
} else{
  echo "The Script Exited, the ip address of WSL 2 cannot be found";
  exit;
}

#[Ports]

#All the ports you want to forward separated by coma
$ports=@(80,443,10000,3000,5000);


#[Static ip]
#You can change the addr to your ip config to listen to a specific address
$addr='0.0.0.0';
$ports_a = $ports -join ",";


#Remove Firewall Exception Rules
iex "Remove-NetFireWallRule -DisplayName 'WSL 2 Firewall Unlock' ";

#adding Exception Rules for inbound and outbound Rules
iex "New-NetFireWallRule -DisplayName 'WSL 2 Firewall Unlock' -Direction Outbound -LocalPort $ports_a -Action Allow -Protocol TCP";
iex "New-NetFireWallRule -DisplayName 'WSL 2 Firewall Unlock' -Direction Inbound -LocalPort $ports_a -Action Allow -Protocol TCP";

for( $i = 0; $i -lt $ports.length; $i++ ){
  $port = $ports[$i];
  iex "netsh interface portproxy delete v4tov4 listenport=$port listenaddress=$addr";
  iex "netsh interface portproxy add v4tov4 listenport=$port listenaddress=$addr connectport=$port connectaddress=$remoteport";
}

 

更換預設語系
阿舍的隨手記記 Ubuntu 用指令設定終端機顯示中文訊息
 

sudo locale-gen zh_TW 
sudo locale-gen zh_TW.UTF-8
sudo dpkg-reconfigure locales 
sudo update-locale LANG="zh_TW.UTF-8" LANGUAGE="zh_TW"

用locale指令可以查得目前的語系設定

發表於 Linux系統, Windows系統, 程式設計 | 發表迴響

[NB-IoT]是什麼呢?

參考網址:
【NB-IoT】是什麼呢? 【NB-IoT】(窄帶物聯網 ,Narrow Band -Internet of Things)

中華電信行動物聯網 https://www.cht.com.tw/home/Campaign/M-IoT/index.html

發表於 生活資訊, 程式設計 | 發表迴響

[ESP32]應用範例(含webserver)

參考網址:https://randomnerdtutorials.com/projects-esp32/

90+ ESP32 Projects, Tutorials and Guides with Arduino IDE

webserver https://randomnerdtutorials.com/esp32-web-server-arduino-ide/

阿玉Web:Bit研究區 https://sites.google.com/site/wenyuwebbit/14-arduino-ide-huan-jing/01-esp32-web-server

發表於 程式設計 | 發表迴響

[git][webduino]github網頁

參考網址:
製作好的webduino自訂積木,要分享給大家使用,可以透過github來完成。
就像法蘭斯一樣https://github.com/fustyles/webduino/blob/master/CustomBlock.txt
範例 
(新版) QR code辨識 (instascan)
https://fustyles.github.io/webduino/instascan.js_20201012/blockly.json

申請好github帳號後,並沒有開啟github的網頁功能,得自行設定。
GitHub Pages
首先新增一個sairwolf.github.io的Repository
在sairwolf.github.io中新增index.html檔案
就可以用https://sairwolf.github.io看到網頁了

再來就是將倉庫部署到github pages
如何將你的github倉庫部署到github pages
例如進入myBlocks repository ,點右上角的setting
找到github pages的區塊,設定好後按save就可以了。

 

發表於 程式設計 | 發表迴響

[webduino]自訂積木

參考網址:阿玉Web:Bit研究區 我的第一個Web:Bit積木

 

發表於 程式設計 | 發表迴響

[rasp]樹莓派紅外線控制

參考網址:硬pi製作

http://digiland.tw/viewtopic.php?pid=12101

http://www.lirc.org/

http://aron.ws/projects/lirc_rpi/

http://alexba.in/blog/2013/03/09/raspberrypi-ir-schematic-for-lirc/ 這一篇介紹了如何安裝與使用

http://www.raspberries.tw/post/48939062042/raspberry-pi-lirc-implement

這兒有一篇中文使用說明https://digiland.tw/viewtopic.php?id=2591

這一篇寫得很清楚 嗯唉欸斯的MEMO

 

看來有些複雜,還是用webduino smart 比較簡單

發表於 程式設計 | 發表迴響