2018年6月25日 星期一

【AnyDesk】鍵盤設置

如果要用AnyDesk寫程式,
記得要把【設定】裡面的【系統轉換按鍵】取消!!



【Bootstrap】CSS3 icon 圖示

做網頁常常要用到小icon,以前都是用image,
現在可以直接用更方便的bootstrap的css的icon,

https://www.w3schools.com/icons/bootstrap_icons_glyphicons.asp

2018年6月13日 星期三

【HTML5】Google 網頁設計師

Google 發布的HTML5編輯器,圖形化介面可以快速產生HTML5動畫

有空來玩玩

網址:https://www.google.com/webdesigner/

【PHP】HTML直接輸出PDF

可以使用 tcpdf
網址:https://tcpdf.org/
範例:https://tcpdf.org/examples/example_021/

require("class/TCPDF-master/tcpdf.php");
class Mya_tcpdf 
{
 
 public function tcpdf_html($html, $title)
 { 
  // create new PDF document
  $pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
  
  // set document information
  $pdf->SetCreator(PDF_CREATOR);
  $pdf->SetAuthor('');
  $pdf->SetTitle($title);
  $pdf->SetSubject('');
  $pdf->SetKeywords('');
  
  // set default header data
  $pdf->setPrintHeader(false);
  $pdf->setFooterFont(array(PDF_FONT_NAME_DATA, '', 10));
  
  // set default monospaced font
  $pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED);
  
  // set margins
  //$pdf->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT);
  $pdf->SetMargins(10, 10, 10);
  $pdf->SetHeaderMargin(0);
  $pdf->SetFooterMargin(10);
  
  // set auto page breaks
  $pdf->SetAutoPageBreak(TRUE, 10);
  
  // set image scale factor
  $pdf->setImageScale(PDF_IMAGE_SCALE_RATIO);
  
  // set some language-dependent strings (optional)
  if (@file_exists(dirname(__FILE__).'/lang/eng.php')) {
   require_once(dirname(__FILE__).'/lang/eng.php');
   $pdf->setLanguageArray($l);
  }   
  
  // set font
  $pdf->SetFont('msjh','',1); // 字形需另外下載

  // add a page
  $pdf->AddPage();

  // output the HTML content
  $pdf->writeHTML($html, true, false, true, false, '');

  // reset pointer to the last page
  $pdf->lastPage();

  // ---------------------------------------------------------

  //Close and output PDF document
  $pdf->Output("abc.pdf", 'I');
 } 
 
}

【PHP】HTML Purifier 可過濾HTML限定只能用那些HTML

碰到只能用某些HTML,自己過濾超麻煩,

























後來找到好用的套件 :HTML Purifier

裡面還有很多功能,也可阻擋XSS攻擊

require('class/htmlpurifier/HTMLPurifier.auto.php');

$config = HTMLPurifier_Config::createDefault();


$config->set('HTML', 'Allowed', 
 'a[accesskey|href|rel|tabindex}target|type]
 ,area[accesskey|alt, coords|href|name|shape|tabindex|target]
 ,img[alt|border|height|ismap|src|usemap|width]
 ,b,blockquote[cite],br,dd,div,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,span,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]
 '
 );
$purifier = new HTMLPurifier($config);
echo $cleanContent = $purifier->purify($content);

2018年6月7日 星期四

【Jquery UI】拖移(sortable)抓到值

$(".cat1 .type-sort").sortable({update: function (e, ui){
    $current_id = ui.item.attr('id');
    $change_id = ui.item.prev().attr('id');
    console.log(ui.item.attr('id')+'/'+ui.item.prev().attr('id'));

    console.log($("#"+$current_id).html());
  }});

【Jquery】動態產生也可綁定事件

利用Jquery產生出來的物件 (append、prepend),
在之前設定的$('.item').click()會失效,
要改成 $('body').on('click','.item',funciton (){});

2018年5月29日 星期二

【PHP】JSON 相關

1.編碼 JSON 時保留 key 值

$post_data = json_encode(array('aaa'), JSON_FORCE_OBJECT);
// 輸出  {"0":"aaa"}

2.解碼時用陣列

$array = json_decode($json, true);
echo $array['foo'] . PHP_EOL; //"bar"
echo $array['number'] . PHP_EOL; //42

3.陣列轉換成物件 {}

$obj = (object) array('1' => 'foo');
$a = new stdclass; $a->id = 11;

4.sublime prettify 的快捷鍵是 Ctrl + Alt + J (要先安裝)


【PHP】型態轉成object

有時要把型態轉成object可用

方法一: $obj = (object) array('1' => 'foo');

方法二:$a = new stdclass; $a->abc = 'abc';

目前有用到的時機

1.轉json時,為了符合別人定的API的JSON規則,需要轉成object

2.建立一個空的類只是為了傳遞或儲存參數時