2016-07-19 148 views
0

有幾個其他職位引用此問題。這裏的區別是我願意發佈這個麻煩的網址。curl命令行工作,php shell_exec()不是

這工作: curl https://pas-gdl.overdrive.com/advanced-search

這不起作用: $pagesource = shell_exec("curl https://pas-gdl.overdrive.com/advanced-search");

我得到了可怕的51錯誤:「捲曲:(51)SSL:沒有替代證書主題名稱匹配目標主機名「PAS -gdl.lib.overdrive.com'「

涉及通配符ssl證書。我試圖找出默認情況下命令行curl是做什麼的一個可能的解決方案。但是,由於我只是通過shell_exec執行相同的命令,應該沒有區別。

命令行選項生成高級搜索html,而shell_exec不生成。任何信息爲什麼將不勝感激。

+1

'curl'不同的用戶下通過shell調用運行比一個從PHP腳本運行。有幾個解決方案,首先想到的是使用'--insecure'開關,這會關閉SSL驗證。另一個是使用[guzzle](https://github.com/guzzle/guzzle)這樣的庫,所以你不必使用'shell_exec'。第三個是你只是試着'$ pagesource = file_get_contents('https://pas-gdl.overdrive.com/advanced-search「)' –

+0

我試過'-k'這導致了重定向錯誤。我使用'-L'來允許跟蹤位置,這以錯誤的html被獲取結束,我嘗試了'file_get_contents',但是卻得到了這個錯誤:'在blah.php中啓用加密失敗。' –

+0

仍在拼圖。 –

回答