2018年12月25日 星期二

【apache】VC6 9 11 15?

安裝apache到windows有分VC多少版本的
他是指用VisualStudio多少版本編譯的,windows也要去下載對應套件才能用
但太舊的windows會不支援新版的VisualStudio

VC6 Visual Studio 6
VC9 Visual Studio2008
VC11 Visual Studio2012 (xp、windows server2003不支援)
VC14 Visual Studio2015 (xp、windows server2003不支援)
VC15 Visual Studio2017 (xp、windows server2003不支援)

【PHP】php.ini 設定發信信箱及信箱密碼 win32

參考網址:http://php.net/manual/en/ref.mail.php

1.到 http://glob.com.au/sendmail/ 下載 sendmail

2.找個目錄放,我是放到跟php的目錄裡面

3.修改php.ini 找到 mail function 
    修改 sendmail_path = "C:\php\sendmail\sendmail.exe -t" (剛剛下載的檔案的位置)

4.修改 sendmail 裡的 sendmail/sendmail.ini
    smtp_server=(郵件主機)
    auth_username=(帳號)
    auth_password=(密碼)

2018年12月10日 星期一

【CSS】mask 滿畫面

  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background-color: #000;
  opacity: 0.65;
  z-index: 100;

2018年9月7日 星期五

【PHP】瀏覽過的商品

function save_history($id,$max=10)
{
 $t = 60 * 60 * 24 * 365;
 if ($_COOKIE['history_goods'])
 {
  $history_goods_arr = json_decode($_COOKIE['history_goods'],true);
  if (in_array($id,$history_goods_arr))
  {
   return false;
  }
  if (count($history_goods_arr) >= $max)
  {
   array_shift($history_goods_arr);
  }
  $history_goods_arr[] = $id;

  setcookie("history_goods",'',time()-3600);
  setcookie("history_goods",$history_goods,time()+$t);

 } else {
  $history_goods_arr[] = $id;
  $history_goods = json_encode($history_goods_arr);
  setcookie("history_goods",$history_goods,time()+$t);
 }

}

2018年8月17日 星期五

【PHP】extract

extract 這很好用可以直接把陣列變成變數

$my_array = array("a" => "Cat","b" => "Dog", "c" => "Horse");
extract($my_array);
echo "\$a = $a; \$b = $b; \$c = $c";

但不要用於GET和POST

【PHP】htmlspecialchars && htmlentities && urlencode

htmlspecialchars 與 htmlentities 感覺效果一樣都是把HTML的標籤變成代碼

但 htmlspecialchars 只會轉換特定的符號,htmlentities 轉換的比較多

所以一般要用 htmlspecialchars 速度較快

urlencode 主要是編碼 URL

【PHP】serialize && json

有天看到資料別人資料出現:a:2:{i:0;s:1:"1";i:1;s:1:"2";}

這是三小,

後來查一下他是用 serialize 將 array 編碼後的字串,

我一般都是用 json_encode 將陣列編碼在存入資料庫,

查了一下 serialize 好處是可以把整個class轉成字串,

但一般沒特殊需求還是用 JSON 格式,不但可讀也可跨平台。


2018年7月2日 星期一

【Google】AMP 行動網站加速計劃

Accelerated Mobile Pages (AMP) 是一種根據開放原始碼規格所設計的網頁。
透過 AMP 製作技術,您能夠大大縮短靜態內容的渲染時間從而有效提升網頁效能。
缺點是限制很多

官方網頁
AMP測試

2018年6月29日 星期五

【PHP】判斷連結圖片是否存在,如果不存在將他移除

// 建立白名單
require_once('../class/htmlpurifier/HTMLPurifier.auto.php');
$config = HTMLPurifier_Config::createDefault();
$config->set('HTML', 'Allowed', 
'
,area[accesskey|alt, coords|href|name|shape|tabindex|target]
,img[alt|border|height|ismap|src|usemap|width]
,b,blockquote[cite],br,dd,dl,dt,em,h1,h2,h3,h4,h5,h6
,hr,i,li[value],map,ol[start|type]
,nav[accesskey|contenteditable|contextmenu|data-*|draggable|dropzone|hidden|spellcheck|tabindex|translate]
,ol[start|type],p,pre,rp,rt,ruby,s,small,source,strike,strong,style,sub,sup,
,table[border|cols|summary|cellpadding|cellspacing|align]
,tbody[valign],td[bordercolor|colspan|rowspan],tfoot[valign]
,th[colspan|rowspan|scope],thead[valign],tr[colspan|rowspan]
,tt,u,ul,video[autoplay|controls|height|loop|muted|poster|preload|src|width]
,div[style|class|id]
,span[style|class|id]
'
);

$purifier = new HTMLPurifier($config);
$rs['description'] = $purifier->purify($rs['description']);


// 判斷連結圖片是否存在,如果不存在將他移除
preg_match_all("//", $rs['description'], $img_arr);

if ($img_arr)
{

 foreach($img_arr[1] as $key=>$img)
 {
  $size_arr = getimagesize($img);

  if (!$size_arr)
  {
   $img_arr[0][$key];
   $rs['description'] = str_replace($img_arr[0][$key], '', $rs['description']);
  }
 }
}

2018年6月28日 星期四

【PHP】addslashes & stripslashes 符號前加斜線

常常忘了這兩個函數 addslashes、stripslashes

$str = "Is your name O'reilly?";

// 輸出:Is your name O\'reilly?
$str = addslashes($str);
echo $str;

echo stripslashes($str);