質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
cURL

cURLはHTTP, FTPやTelnetなど複数のプロトコルを用いてデータを転送するライブラリとコマンドラインツールを提供します。

GET

GETとはHTTPが対応するリクエストメソッドの一つです。クライアントからサーバーへ送られたURLパラメータのデータを取得する時必要がある時に使われます。

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

POST

POSTはHTTPプロトコルのリクエストメソッドです。ファイルをアップロードしたときや入力フォームが送信されたときなど、クライアントがデータをサーバに送る際に利用されます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

解決済

file_get_contentsが使用禁止だったときの代わり

tenten0703
tenten0703

総合スコア46

cURL

cURLはHTTP, FTPやTelnetなど複数のプロトコルを用いてデータを転送するライブラリとコマンドラインツールを提供します。

GET

GETとはHTTPが対応するリクエストメソッドの一つです。クライアントからサーバーへ送られたURLパラメータのデータを取得する時必要がある時に使われます。

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

POST

POSTはHTTPプロトコルのリクエストメソッドです。ファイルをアップロードしたときや入力フォームが送信されたときなど、クライアントがデータをサーバに送る際に利用されます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

3回答

0評価

1クリップ

1206閲覧

投稿2021/05/05 07:11

編集2021/05/05 07:32

前提・実現したいこと

file_get_contensがサーバーのセキュリティ上禁止だったのでcurlという関数で
「取り出したいデータのファイル」にある

<div class="menu">から</div>までをget通信でedit.phpにurlを渡し、内容を取り出したいのですが、mb_subster等を使いとりだしを試みましたが分からなかったので取り出しかたを教えてください。 よろしくお願いします。

発生している問題・エラーメッセージ

エラーメッセージ

該当のソースコード

php

<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>取り出したいデータのファイル</title> </head> <style> </style> <body> <form method="get" action="../edit.php"> <button type="submit" name="edit" value="<?php echo (empty($_SERVER['HTTPS']) ? 'http://' : 'https://').$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];?>">編集</button> </form> <div class="menu"> <h1>メニュー</h1> <p>カレー</p> </div> </body> </html>

php

edit.php <!DOCTYPE html> <html lang="en" xmlns="http://www.w3.org/1999/xhtml"> <head> <meta charset="utf-8" /> <title>別のファイルを表示したいファイル</title> </head> <style> </style> <body> <?php echo $_REQUEST['edit']; $url = $_REQUEST['edit']; $conn = curl_init(); // cURLセッションの初期化 curl_setopt($conn, CURLOPT_URL, $url); // 取得するURLを指定 curl_setopt($conn, CURLOPT_RETURNTRANSFER, true); // 実行結果を文字列で返す。 $res = curl_exec($conn); echo ($res); curl_close($conn); //セッションの終了 ?> </body> </html>

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

tenten0703

2021/05/05 07:34

すみません。 更新しました。 端的にいうと、ページ全ての内容全ては取り出せますが、一部だけとなると分からなかったため教えてください。
m.ts10806

2021/05/05 07:36

どんなデータがあってどのように取り出したいのか分からないと、なんとも。 いずれも「指定のURLの出力」を受け取るので、受け取る形態によりやることが違います。
tenten0703

2021/05/05 07:48

>どんなデータがあって これを取り出す方法を教えていただければなと思います。 <div class="menu"> <h1>メニュー</h1> <p>カレー</p> </div> >どのように取り出したいのか 普通のテキスト形式(文字列)で取得したいです。
Y.H.

2021/05/05 08:59

> file_get_contensがサーバーのセキュリティ上禁止だったので file_get_contentsが使用できる場合は問題ないんですね? であれば、file_get_contents を使用した場合のコードを質問を編集し記載された方がやりたいことがダイレクトに伝わり回答を得やすいと思います。
m.ts10806

2021/05/05 11:22

>これを取り出す方法を教えていただければなと思います。 ですから、どういう情報の中の?という話をしています。 HTMLの解析をしたいのか、自由に取り出したいのか、本当にそれだけなのか 全体像から出ないと的確なアドバイスにはなりません。 まぁもしスクレイピング目的なら「そもそも勝手に抜くことが許可されてるのか」という話になりますけどね。
退会済みユーザー

退会済みユーザー

2021/05/06 00:36

レンタルサーバーによっては、外部コンテンツの取得そのものができないようカスタマイズが施されている場合がありますので、cURL使うとしてもやっていいかどうかは確認しておいたほうがよろしいかと。
tenten0703

2021/05/06 00:42

m6u様 ありがとうございます。 過去の事例とか検索してみます。

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

cURL

cURLはHTTP, FTPやTelnetなど複数のプロトコルを用いてデータを転送するライブラリとコマンドラインツールを提供します。

GET

GETとはHTTPが対応するリクエストメソッドの一つです。クライアントからサーバーへ送られたURLパラメータのデータを取得する時必要がある時に使われます。

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

POST

POSTはHTTPプロトコルのリクエストメソッドです。ファイルをアップロードしたときや入力フォームが送信されたときなど、クライアントがデータをサーバに送る際に利用されます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。