1 2 3 4 |
<?php $html = file_get_contents('https://www.yahoo.co.jp/'); echo $html; ?> |
こんなエラー、というか警告を吐いて死んだ。
1 2 |
Warning: file_get_contents(): Unable to find the wrapper "https" - did you forget to enable it when you configured PHP? in E:\program\php_lesson\scrap.php on line 2 Warning: file_get_contents(https://www.yahoo.co.jp/): failed to open stream: No such file or directory in E:\program\php_lesson\scrap.php on line 2 |
ググってみると、このページをみつけた。php.iniに次の2行を追加するといいようだ。
1 2 |
allow_url_fopen = On extension=php_openssl.dll |
php.iniの場所がわからなかったのでまたググった。このページによると、
1 |
phpinfo(); |
これを実行するだけで場所がわかるようだ。で、実行したところ、わたしの環境では「C:\Windows」にあるとわかった。またクリティカルなところに勝手につくってくれたもんだと憤慨しつつ確認すると、ない。php.iniがない。 数十分悩んだが、ないならつくってみるか、ということで自分で「C:¥Windows」にphp.iniをつくってみた。中身は次の2行。
1 2 |
allow_url_fopen = On extension=php_openssl.dll |
それでPHPのビルトインサーバを起動したところエラー。どうやらphp_openssl.dllがないといっているようだ。PHPのフォルダを探してみると、「E:\App\php-7.2.9-nts-Win32-VC15-x64\ext\php_openssl.dll」にあった。extフォルダの中を探してみるとあるかと思います。 php.iniの内容を次のように書き換えてビルトインサーバを再起動。
1 2 |
allow_url_fopen = On extension="E:\App\php-7.2.9-nts-Win32-VC15-x64\ext\php_openssl.dll" |
うまくいきました。https:ではじまるURLを指定できるようになった。extensionに指定する値はご自身の環境にあわせてこのようにしてみてください。
1 2 |
allow_url_fopen = On extension="php_openssl.dllの絶対パス" |
ひょっとしてPHPのビルトインサーバを使っているからphp.iniがなかったのかな? ApacheとかのふつうのWebサーバをインストールしたらphp.iniがC:\Windowsにつくられるってことなのかな。]]>