電子書籍の厳選無料作品が豊富!

すいません、初めてphpを勉強しているのですが初歩的な所でつまずいてしまって、formからURLを飛ばして、$_GET["abc"]で受け取ります。その後、ソースコードを全部取得してそこから特定の文字列を抜き出したいのですが・・。

例えばソースコードに載っている要素、エレメント部分以外の文字列(日本語とか)だと問題無く抜き取れたり、削除したりできるのですが、</a> </div>とか<title>とかの文字列を指定するとstristrやmb_strposが一切反応してくれなくなります。
(何も返してくれなかったり、意味不明な4桁くらいの数字が出たりします)

例えば下記のコードはエラーがでて文字列は返してくれません。
<title>の部分をソースコード内にある日本語などに変えるとちゃんと動きます。

これは何が原因なのでしょうか・・。分かる方いましたらアドバイス頂けると助かります。


<?php

$page = $_GET["abc"];

$page2 = file_get_contents("$page");
$page2 = str_replace(array(" ", " "), "", $page2);/*スペース削除*/
$page2 = str_replace(array("\r\n", "\r", "\n"), "", $page2);/*改行削除*/
$page2 = htmlentities($page2, ENT_QUOTES, 'UTF-8');


echo stristr($page2, '<title>');

?>

A 回答 (2件)

$page2 = htmlentities($page2, ENT_QUOTES, 'UTF-8');


が間違えてますね。
htmlentities や htmlspecialchars 関数はechoするときに使います。
結果を変数に代入するような物ではないです。


$page2 = file_get_contents("$page");
$page2 = str_replace(array(" ", " "), "", $page2);/*スペース削除*/
$page2 = str_replace(array("\r\n", "\r", "\n"), "", $page2);/*改行削除*/

echo htmlentities(stristr($page2, '<title>'), ENT_QUOTES, 'UTF-8');
    • good
    • 0
この回答へのお礼

無事できました。ありがとうございます。

お礼日時:2021/08/11 00:25
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!