目前分類:NetYea (12)

瀏覽方式: 標題列表 簡短摘要
水管清洗

sqlite3的名擴展在PHP 5.3.0+以上都會默許啟用。在可以compile-時利用--without-sqlite3來禁用它。
視窗柯林斯用戶經由過程啟用php_sqlite3.dll才能利用此擴大。php_sqlite3.dll默許所有遊戲在PHP 5.3.0以後的PHP刊行版中。
有關具體的安裝申明,請查看PHP教程及其官方網站。
毗連到的SQLite數據庫以下PHP代碼顯示若何毗鄰到SQLite數據庫。如果數據庫不存在,那麼它將創建一個新的數據庫,最後將返回一個數據庫對象。

  1. <?php
  2.    class SQLiteDB extends SQLite3
  3.    {
  4.       function __construct()
  5.       {
  6.          $this->open('phpdb.db');
  7.       }
  8.    }
  9.    $db = new SQLiteDB();
  10.    if(!$db){
  11.       echo $db->lastErrorMsg();
  12.    } else {
  13.       echo "Yes, Opened database successfully\n";
  14.    }
  15. ?>
文章標籤

pilano3gswy14 發表在 痞客邦 留言(0) 人氣()

水管清洗因搜尋引擎改版,網站不得不改https
當網站安裝了SSL後,如何把網址主動轉成https?

在網頁目錄-public_html,有一個檔案叫 .htaccess,編纂檔案內容,然後將以下轉向的劃定規矩寫在裡面:

寫法1:

  1. RewriteCond %{HTTPS} off
  2. RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
文章標籤

pilano3gswy14 發表在 痞客邦 留言(0) 人氣()

水管清洗

1.png

1、TableSorter 介紹

在所有 jQuery 表格排序外掛裡面,TableSorter 算是利用率最高的,而且擴充功能相當多(但紛歧定用得到),是以本篇保舉這個東西。

1. 官網申明

https://mottie.github.io/tablesorter/docs/

下載檔案後找到這幾個檔案

 

文章標籤

pilano3gswy14 發表在 痞客邦 留言(0) 人氣()

水管清洗用ESP32 PWM實現LED慢慢亮起。

程式的部分首要分成三個:1.設定頻道LEDchannel、2.附加到PIN腳、3.決意輸出大小。水管清洗

1.設定頻道LEDchannel屬性

ledcSetup(LEDChannel, freq, resolution);
//LEDChannel設定為0,分歧輸出要設定到不同頻道,例如RGB LED就要開三個頻道離別經管R、G、B
//freq輸出頻率,建議值5000 Hz
//resolution代表輸出解析度,例如8代表0-255,10代表0-1023

2.附加到PIN腳

ledcAttachPin(ledPin, LEDChannel);
//ledPin代表腳位,看你把裝備接在哪個腳位上面
//LEDchannel代表步調1所宣佈的LEDchannel,也就是說把設定好的LEDchannel屬性附加到某個腳位上

3.決意輸出巨細。

ledcWrite(LEDChannel, dutyCycle);
//將LEDchannel輸出dutyCycle的值。

規範程式將使接在Pin16的LED逐步亮起並熄滅,典範榜樣複製於水管清洗 https://randomnerdtutorials.com/esp32-pwm-arduino-ide/

1.jpg

  1. // the number of the LED pin
  2. const int ledPin = 16;  // 16 corresponds to GPIO16
  3.  
  4. // setting PWM properties
  5. const int freq = 5000;
  6. const int ledChannel = 0;
  7. const int resolution = 8;
  8.  
  9. void setup(){
  10.   // configure LED PWM functionalitites
  11.   ledcSetup(ledChannel, freq, resolution);
  12.   
  13.   // attach the channel to the GPIO to be controlled
  14.   ledcAttachPin(ledPin, ledChannel);
  15. }
  16.  
  17. void loop(){
  18.   // increase the LED brightness
  19.   for(int dutyCycle = 0; dutyCycle <= 255; dutyCycle++){   
  20.     // changing the LED brightness with PWM
  21.     ledcWrite(ledChannel, dutyCycle);
  22.     delay(15);
  23.   }
  24.  
  25.   // decrease the LED brightness
  26.   for(int dutyCycle = 255; dutyCycle >= 0; dutyCycle--){
  27.     // changing the LED brightness with PWM
  28.     ledcWrite(ledChannel, dutyCycle);   
  29.     delay(15);
  30.   }
  31. }
文章標籤

pilano3gswy14 發表在 痞客邦 留言(0) 人氣()

水管清洗
良多網站成立初期,行使YAHOO或GOOGLE搜索引擎搜索本身網站,卻發現在YAHOO或GOOGLE搜尋引擎輸入網站名找不到自己網站,花了大把銀子請網頁設計公司作網站,卻沒法達到暴光的結果,下面介紹若何行使免費網站 SiteTag:http://sitetag.us/ 來讓自己網站晉升排名及暴光。
首先,先輩入到 SiteTag:http://sitetag.us/ 官方網站
文章標籤

pilano3gswy14 發表在 痞客邦 留言(0) 人氣()

比來發現Cpanel伺服器發給gmail信箱經常收不到
一下又收的到,但大部分都被擋下來
找了google後發現要到google workspace申請帳號驗證網域
先到google workspace 申請帳號
1.png

輸入公司名稱
2.png

姓名及EMAIL
3.png
選已有網域了
4.png
輸入網域
5.png

設定EMAIL(你具有的網域)帳號暗碼
6.png

輸入手機號碼
7.png

收到簡訊驗證碼並輸入
8.png

點接管
9.png

點 護衛
10.png

點 我已準備好珍愛我的網域
11.png

繼續 前去步調2
12.png

複製TXT value(TXT值) 到 Cpanel dns manager新增一TXT紀錄
點選 回護網域 (五分鐘內完成)
13.png

繼續
14.png

 

 

文章標籤

pilano3gswy14 發表在 痞客邦 留言(0) 人氣()

前台看到 相幹商品

1.png

文章標籤

pilano3gswy14 發表在 痞客邦 留言(0) 人氣()

申明:在Linux下把excel數據導入到mysql數據庫中,這實在是很搞笑的一個運動!幾近很少有程序員研究過這個問題吧?如斯失常的問題,估量我是第一個研究的!呵呵,完滿是自找苦吃~~,但是今天完了這項太有挑戰性的工作!
先清理一下思緒先,~~
起首:需要把文件上傳到辦事器上
然後:讀取excel數據列顯示出來
然後:讓用戶選擇字段的對應關係
然後:提交數據,讀取字段的對應關係
最後:批量導入數據,刪除且則文件
一共是以上五步驟!我們一步步分析~~~
第一步:下載附件中的phpexcelparser4.rar ,這個文件是上傳excel盜辦事器上並以web情勢展現出來的!這個一般沒有問題的!問題是程序的做法是把表存為臨時表而沒有真正保留下來,所以起首要更改法式代碼為

 

  1.  
  2. //uc轉換成html
  3. function uc2html($str) {
  4.    $ret = '';
  5.    for( $i=0; $i<strlen($str)/2; $i++ ) {
  6.        $charcode = ord($str[$i*2])+256*ord($str[$i*2+1]);
  7.        // $ret .= '&#'.$charcode;
  8.        if($charcode<127)
  9.          $ret .=chr($charcode);
  10.        else
  11.            $ret .= iconv("utf-8","utf-8",u2utf8($charcode));
  12.    }
  13.        return $ret;
  14. }
  15. //html轉成utf8
  16. function u2utf8($c) {
  17. $str="";
  18. if ($c < 0x80) {
  19.   $str.=$c;
  20. } else if ($c < 0x800) {
  21.   $str.=chr(0xC0 | $c>>6);
  22.   $str.=chr(0x80 | $c & 0x3F);
  23. } else if ($c < 0x10000) {
  24.   $str.=chr(0xE0 | $c>>12);
  25.   $str.=chr(0x80 | $c>>6 & 0x3F);
  26.   $str.=chr(0x80 | $c & 0x3F);
  27. } else if ($c < 0x200000) {
  28.   $str.=chr(0xF0 | $c>>18);
  29.   $str.=chr(0x80 | $c>>12 & 0x3F);
  30.   $str.=chr(0x80 | $c>>6 & 0x3F);
  31.   $str.=chr(0x80 | $c & 0x3F);
  32. }
  33. return $str;
  34. }
  35.  
  36. if (trim($_POST["cmd"])=="upload")
  37. {
  38. $err_corr = "Unsupported format or file corrupted";
  39. $excel_file_size;
  40. $excel_file = $_FILES['excel_file'];
  41. $uploadservername=$UploadAbsPath."tmpexcel/".$_FILES['excel_file']['name'];
  42. echo($uploadservername);
  43.      if (!is_writeable($UploadAbsPath."tmpexcel/"))水管清洗
  44.      {
  45.      echo "目次弗成寫!"; exit;
  46.      }
  47.      else
  48.      {
  49.      echo "目錄可寫!";
  50.      }
  51. if (move_uploaded_file($_FILES['excel_file']['tmp_name'], $uploadservername))
  52. {
  53.     echo("上傳成功");
  54. }
  55. else
  56. {
  57.     echo("上傳失敗");
  58. }
  59. $excel_file=$uploadservername;
  60. //if( $excel_file )
  61. //    $excel_file = $_FILES['excel_file']['tmp_name'];
  62.  
  63.  
  64. if( $excel_file == '' ) fatal("No file uploaded");
  65.  
  66.  
  67. $exc = new ExcelFileParser("debug.log", ABC_NO_LOG);//ABC_NO_LOG ABC_VAR_DUMP);
  68.     //echo($excel_file."|");
  69.    
  70. $style = $_POST['style'];
  71. if( $style == 'old' )
  72. {
  73.     $fh = @fopen ($excel_file,'rb');
  74.     if( !$fh ) fatal("No file uploaded");
  75.     if( filesize($excel_file)==0 ) fatal("No file uploaded");
  76.     $fc = fread( $fh, filesize($excel_file) );
  77.     @fclose($fh);
  78.     if( strlen($fc) < filesize($excel_file) )
  79.     fatal("Cannot read file");
  80.    
  81.     $time_start = getmicrotime();
  82.     $res = $exc->ParseFromString($fc);
  83.     $time_end = getmicrotime();
  84. }
  85. elseif( $style == 'segment' )
  86. {
  87.     $time_start = getmicrotime();
  88.     $res = $exc->ParseFromFile($excel_file);
  89.     $time_end = getmicrotime();
  90. }
  91.  
  92.  
  93. switch ($res) {
  94.     case 0: break;
  95.     case 1: fatal("Can't open file");
  96.     case 2: fatal("File too small to be an Excel file");
  97.     case 3: fatal("Error reading file header");
  98.     case 4: fatal("Error reading file");
  99.     case 5: fatal("This is not an Excel file or file stored in Excel < 5.0");
  100.     case 6: fatal("File corrupted");
  101.     case 7: fatal("No Excel data found in file");
  102.     case 8: fatal("Unsupported file version");
  103.  
  104.  
  105.     default:
  106.     fatal("Unknown error");
  107. }
  108.  
  109.  
  110. /*
  111. print '<pre>';
  112. print_r( $exc );
  113. print '</pre>';
  114. exit;
  115. */
  116.  
  117.  
  118. show_time();
  119.  
  120.  
  121. echo <<<LEG
  122. <b>Legend:</b><br><br>
  123. <form name='doform' action='' method='post'>
  124. <input type='hidden' name='action' value='do'>
  125. <input type='hidden' name='excel_file' value=$excel_file>
  126. <input type='hidden' name='style' value=$style>
  127. <table border=1 cellspacing=0 cellpadding=0>
  128. <tr><td>Data type</td><td>Description</td></tr>
  129. <tr><td class=empty>&nbsp;</td><td class=index>An empty cell</td></tr>
  130. <tr><td class=dt_string>ABCabc</td><td class=index>String</td></tr>
  131. <tr><td class=dt_int>12345</td><td class=index>Integer</td></tr>
  132. <tr><td class=dt_float>123.45</td><td class=index>Float</td></tr>
  133. <tr><td class=dt_date>123.45</td><td class=index>Date</td></tr>
  134. <table>
  135. <br><br>
  136.  
  137.  
  138. LEG;
  139. /*
  140. print "<pre>";
  141. print_r ($exc->worksheet);
  142. print_r($exc->sst);
  143. print "</pre>";
  144. */
  145.     for( $ws_num=0; $ws_num<count($exc->worksheet['name']); $ws_num++ )
  146.     {
  147.     print "<b>Worksheet: \"";
  148.     if( $exc->worksheet['unicode'][$ws_num] ) {
  149.     print uc2html($exc->worksheet['name'][$ws_num]);
  150.     } else
  151.     print $exc->worksheet['name'][$ws_num];
  152.  
  153.  
  154.     print "\"</b>";
  155.     $ws = $exc->worksheet['data'][$ws_num];
  156.  
  157.  
  158.     if( is_array($ws) &&
  159.          isset($ws['max_row']) && isset($ws['max_col']) ) {
  160.      echo "\n<br><br><table border=1 cellspacing=0 cellpadding=2>\n";
  161.  
  162.  
  163.      print "<tr><td>&nbsp;</td>\n";
  164.      for( $j=0; $j<=$ws['max_col']; $j++ ) {
  165.     print "<td class=index>&nbsp;";
  166.     if( $j>25 ) print chr((int)($j/26)+64);
  167.     //這裡要顯示一個下拉列表來顯示數據
  168.     //注意是輪回數據<br />
  169.     echo("\n<select name='".$j."'>");
  170.     echo("\n<option value='0'>不選擇</option>");
  171.    echo("\n<option value='costomernum'>客戶編號</option>");
  172.    echo("\n<option value='name'>客戶姓名</option>");
  173.    echo("\n<option value='phone1'>德律風1</option>");
  174.    echo("\n<option value='phone2'>德律風2</option>");
  175.    echo("\n<option value='address1'>地址1</option>");
  176.    echo("\n<option value='address2'>地址2</option>");  
  177.    echo("\n<option value='company'>公司</option>");
  178.    echo("\n<option value='levelc'>職稱</option>");   
  179.    echo("\n<option value='ps'>備註</option>");
  180.    
  181.     echo("</select>");
  182.     print "</td>";
  183.      }
  184.  
  185.  
  186.      print "<tr><td>&nbsp;</td>\n";
  187.      for( $j=0; $j<=$ws['max_col']; $j++ ) {
  188.     print "<td class=index>&nbsp;";
  189.     if( $j>25 ) print chr((int)($j/26)+64);
  190.     print chr(($j % 26) + 65)."&nbsp;列名</td>";
  191.      }
  192.  
  193.  
  194.  
  195. //表頭輸出終了
  196.     if ($ws['max_row']>9)
  197.     {
  198.     $shownum=9;
  199.     }
  200.     else
  201.     {
  202.     $shownum=$ws['max_row'];//只輸出前10條數據
  203.     }
  204.      for( $i=0; $i<=$shownum; $i++ ) {
  205.      print "<tr><td class=index>".($i+1)."</td>\n";
  206.      if(isset($ws['cell'][$i]) && is_array($ws['cell'][$i]) ) {
  207.          for( $j=0; $j<=$ws['max_col']; $j++ ) {
  208.  
  209.  
  210.     if( ( is_array($ws['cell'][$i]) ) &&
  211.          ( isset($ws['cell'][$i][$j]) )
  212.          ){水管清洗
  213.  
  214.  
  215.      // print cell data
  216.      print "<td class=\"";
  217.      $data = $ws['cell'][$i][$j];
  218.  
  219.  
  220.      $font = $ws['cell'][$i][$j]['font'];
  221.      $style = " style ='".ExcelFont::ExcelToCSS($exc->fonts[$font])."'";
  222.  
  223.  
  224.          switch ($data['type']) {
  225.     // string
  226.     case 0:
  227.         print "dt_string\"".$style.">";
  228.         $ind = $data['data'];
  229.         if( $exc->sst['unicode'][$ind] ) {
  230.         $s = uc2html($exc->sst['data'][$ind]);
  231.         } else
  232.         $s = $exc->sst['data'][$ind];
  233.         if( strlen(trim($s))==0 )
  234.         print "&nbsp;";
  235.         else
  236.         print $s;
  237.         break;
  238.     // integer number
  239.     case 1:
  240.         print "dt_int\"".$style.">&nbsp;";
  241.         print $data['data'];
  242.         break;
  243.     // float number
  244.     case 2:
  245.         print "dt_float\"".$style.">&nbsp;";
  246.         echo $data['data'];
  247.         break;
  248.     // date
  249.     case 3:
  250.         print "dt_date\"".$style.">&nbsp;";
  251.  
  252.  
  253.         $ret = $data[data];//str_replace ( " 00:00:00", "", gmdate("d-m-Y H:i:s",$exc->xls2tstamp($data[data])) );
  254.         echo ( $ret );
  255.         break;
  256.     default:
  257.         print "dt_unknown\"".$style."> &nbsp;";
  258.         break;
  259.          }
  260.      print "</td>\n";
  261.     } else {
  262.         print "<td class=empty>&nbsp;</td>\n";
  263.     }
  264.          }
  265.      } else {
  266.     // print an empty row
  267.     for( $j=0; $j<=$ws['max_col']; $j++ )
  268.         print "<td class=empty>&nbsp;</td>";
  269.     print "\n";
  270.      }
  271.      print "</tr>\n";
  272.      }
  273.  
  274.  
  275.      echo "</table><br>\n";
  276.     } else {
  277.     // emtpty worksheet
  278.     print "<b> - empty</b><br>\n";水管清洗
  279.     }
  280.     print "<br>";
  281.  
  282.  
  283.     }
  284.     echo("<input type='submit' name='Submit' value='轉換' />");
  285.     echo("</form>");
  286. /*    print "Formats<br>";
  287.     foreach($exc->format as $value) {
  288.     printf("( %x )",array_search($value,$exc->format));
  289.     print htmlentities($value,ENT_QUOTES);
  290.     print "<br>";
  291.     }
  292.  
  293.  
  294.      print "XFs<br>";
  295.     for( $i=0;$i<count($exc->xf['format']);$i++) {
  296.     printf ("(%x)",$i);
  297.     printf (" format (%x) font (%x)",$exc->xf['format'][$i],$exc->xf['font'][$i]);
  298.  
  299.  
  300.     print "<br>";
  301.     }
  302. */
  303. }
文章標籤

pilano3gswy14 發表在 痞客邦 留言(0) 人氣()

測試成果(夜神慢 雷電9)
文章標籤

pilano3gswy14 發表在 痞客邦 留言(0) 人氣()

1.jpg

 

文章標籤

pilano3gswy14 發表在 痞客邦 留言(0) 人氣()

jQuery分類過濾和排序結構插件-Isotope,jquery-isotope
Isotope是一款效果很是奇異的元素分類過濾和排序結構jQuery插件。Isotope是Masonry結構的作者David DeSandro的一款力作,該分類過濾和排序插件答應你以十分簡單和炫酷的方式來潛藏和顯示元素,和對元素依照指定的劃定規矩進行排序。
Isotope可以設置多種佈局體式格局:masonry結構、程度結構、垂直結構、適合行佈局、合適列結構等等。

注意:Isotope不是完全免費的軟件。用於貿易用途時需要向作者購買。作為非商業用處使用時,在遵循GPL v3 License 規範的條件下,你可以自由使用該插件。
文章標籤

pilano3gswy14 發表在 痞客邦 留言(0) 人氣()

在上篇 若何操縱google adwords 做關鍵字告白

這篇介紹串接 google analytics監看adwords告白轉換成效

影片申明


點選 Adwords 右上角 工具與設定 -> google analytics(剖析)
1.jpg

點選左下側 設定
如沒有帳戶請先創立帳戶
有帳戶點 建樹資本
2.jpg

點擊 網站 (評估您的網站)
3.jpg

填入 名稱及網址
4.jpg

這時候會給 全域網站代碼 (gtag.js)
把這段代碼放入你的網站每頁的底部
5.jpg


追蹤代碼設定好以後
點選 目標->新增目標
6.jpg



拉到最下面->自訂
7.jpg

填入 目標名稱
選擇 目標網址
8.jpg


現實保持方針(網址不消填,填方針頁面名稱就好)
如:http://www.sinpipe.com/appointment.html 管乾淨 線上預約 這網址
只要填 /appointment.html
貯存便可
9.jpg

再產生一個目標監控逗留時候(客戶逗留在網站的時候)
填入名稱
類型:時候長度
10.jpg

時候選4分鐘
11.jpg

這時候已產出兩個方針了
21.jpg

回到Adwords 點選 對象與設定->轉換
12.jpg

點選 +
13.jpg

選擇 匯入->google analytics
14.jpg

選擇剛剛豎立的目標 線上預約(剛剛不是建立兩個目標?怎麼只有一個)
假如要選另一個,請 等待幾分鐘同步後 反複匯入的動作 便可
15.jpg

這時候已匯入目標了
16.jpg

反複匯入的動作 即可看見另外一個方針
點選 ˋ轉換動作 線上預約
17.jpg

編纂設定
18.jpg

計較體式格局 -> 每次
點閱後轉換回溯期 -> 60天
歸因模式 -> 線性
儲存
19.jpg


現在可監測告白轉換的了局了
以下是之前確立的方針轉換來講明結果
20.jpg

數據轉換需要時間(從一個星期到一個月不等才會有結果)

 

文章標籤

pilano3gswy14 發表在 痞客邦 留言(0) 人氣()