前提・実現したいこと
file_get_contensがサーバーのセキュリティ上禁止だったのでcurlという関数で
「取り出したいデータのファイル」にある
発生している問題・エラーメッセージ
エラーメッセージ
該当のソースコード
php
1<!DOCTYPE html> 2<html> 3<head> 4 <meta charset="utf-8"> 5 <title>取り出したいデータのファイル</title> 6</head> 7<style> 8</style> 9<body> 10 11 <form method="get" action="../edit.php"> 12 <button type="submit" name="edit" value="<?php echo (empty($_SERVER['HTTPS']) ? 'http://' : 'https://').$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];?>">編集</button> 13</form> 14<div class="menu"> 15 <h1>メニュー</h1> 16 <p>カレー</p> 17 </div> 18</body> 19</html>
php
1edit.php 2<!DOCTYPE html> 3 4<html lang="en" xmlns="http://www.w3.org/1999/xhtml"> 5<head> 6 <meta charset="utf-8" /> 7 <title>別のファイルを表示したいファイル</title> 8 9</head> 10<style> 11 12</style> 13<body> 14<?php 15echo $_REQUEST['edit']; 16 17$url = $_REQUEST['edit']; 18 $conn = curl_init(); // cURLセッションの初期化 19 curl_setopt($conn, CURLOPT_URL, $url); // 取得するURLを指定 20 curl_setopt($conn, CURLOPT_RETURNTRANSFER, true); // 実行結果を文字列で返す。 21 $res = curl_exec($conn); 22 echo ($res); 23 curl_close($conn); //セッションの終了 24?> 25</body> 26</html>
現状何が問題点でしょうか。
https://teratail.com/help/question-tips#questionTips3-4
すみません。
更新しました。
端的にいうと、ページ全ての内容全ては取り出せますが、一部だけとなると分からなかったため教えてください。
どんなデータがあってどのように取り出したいのか分からないと、なんとも。
いずれも「指定のURLの出力」を受け取るので、受け取る形態によりやることが違います。
>どんなデータがあって
これを取り出す方法を教えていただければなと思います。
<div class="menu">
<h1>メニュー</h1>
<p>カレー</p>
</div>
>どのように取り出したいのか
普通のテキスト形式(文字列)で取得したいです。
> file_get_contensがサーバーのセキュリティ上禁止だったので
file_get_contentsが使用できる場合は問題ないんですね?
であれば、file_get_contents を使用した場合のコードを質問を編集し記載された方がやりたいことがダイレクトに伝わり回答を得やすいと思います。
>これを取り出す方法を教えていただければなと思います。
ですから、どういう情報の中の?という話をしています。
HTMLの解析をしたいのか、自由に取り出したいのか、本当にそれだけなのか
全体像から出ないと的確なアドバイスにはなりません。
まぁもしスクレイピング目的なら「そもそも勝手に抜くことが許可されてるのか」という話になりますけどね。
レンタルサーバーによっては、外部コンテンツの取得そのものができないようカスタマイズが施されている場合がありますので、cURL使うとしてもやっていいかどうかは確認しておいたほうがよろしいかと。
m6u様
ありがとうございます。
過去の事例とか検索してみます。
回答3件
あなたの回答
tips
プレビュー