PHP CURL 遇到 tls12_check_peer_sigalg wrong signature type 解法

PHP 使用 CURL 要爬某個頁面,或者某個網站的 API,怎麼爬都是空白頁面,又沒有被擋,把 CURL 的 Error Info 印出來後,看到下述錯誤:

curl: (35) error:1414D172:SSL routines:tls12_check_peer_sigalg:wrong signature type

閱讀全文〈PHP CURL 遇到 tls12_check_peer_sigalg wrong signature type 解法〉

HTTP 狀態決策樹 的圖表

網頁打開連到某個網站,可以看到正常的內容,這個 HTTP Status code 是 200,沒有秀在頁面上。

但是偶爾會看到整頁白底,但是上面寫 400、403、500,或者畫面比較好看的 404 此頁面找不到 等等,那些是什麼呢?

那些數字有什麼意義?是怎麼判斷的呢?

閱讀全文〈HTTP 狀態決策樹 的圖表〉

PHP 於 Header 送 noindex 給 Crawler bot

某些頁面不想要讓 Search engine (Google、Bing) 的 crawler bot 爬,有幾種方法可以使用:

  1. HTML Meta Tag
  2. 使用 robots.txt
  3. 於 HTTP Header 送 X-Robots-Tag

此篇主要紀錄 HTTP Header 的作法

閱讀全文〈PHP 於 Header 送 noindex 給 Crawler bot〉

JavaScript 唯讀的欄位 要怎麼傳值

HTML 的 Select、Input 可以設定資料不可修改(唯讀),屬性值如下:

  • Select:disabled
  • Input:readonly

但是會遇到 form 要傳送資料時,Input 能收到資料,但是 Select 收不到資料的問題,要怎麼解決呢?

閱讀全文〈JavaScript 唯讀的欄位 要怎麼傳值〉

PHP 強制使用「強型態」的模式

PHP 7 之後,function、Class 等等都可以指定型態、回傳的型態,但是雖然寫 int,傳進來還是可以傳 float,要怎麼強制型態不對就直接出錯誤呢?

function 指定型態完整寫法

<?php
function sum(int $a, int $b): int
{
    return $a + $b;
}

function avg(int $a, int $b): float
{
    return ($a + $b) / 2;
}

// Class
class C {}
class D extends C {}
function f(C $c)
{
    echo get_class($c)."\n";
}
f(new C); // C
f(new D); // D
?>

PHP 的型態:PHP: Type declarations

閱讀全文〈PHP 強制使用「強型態」的模式〉