<?php
$page = 'あいうえお<title>https://www.yahoo.co.jp/</title>かきくけこ';
$page = htmlentities(stristr($page, '<title>'), ENT_QUOTES, 'UTF-8');
echo"$page";
?>
すいません、phpを勉強中で文字を抜き出したりの挙動を確認してたのですが、自分のやりたいことはhtmlのソースからボタン一つでリンクやら画像やらを自動的に収集できるサイトです。しかしphpで文字を扱う場合、特殊文字が原則扱えない事に気が付きました。
これって不便すぎませんか・・?
※「<」とか
一応ここで htmlentitiesで囲めばstristr関数では扱えるという事を教えてもらってこの関数だけは特殊文字が使える事が分かったのですが、ネットにある解説サイトを見てもまったくこの事に触れてるサイトはありません。
最近は食べ物の事でも、プログラムの事でも政治でもなんでも広告サイトばっかりです。初心者サイトを名乗るんだったら最初にこれに触れろよ・・って感じです。結局全部のパターンを試して、あらゆるサイトを確認して・・何時間も無駄になりました。(できないって事を確認することが一番時間がかかります)
htmlentitiesとstristrの同時使用なんてネットのどこを探してもありませんし、分かるわけないです。(そもそもなんで扱えないんだよ・・プログラムって意味不明な制約が多すぎ、ハッキリ言えば何ができるかより、何ができないかを羅列して書いておいて欲しい)
話はめっちゃ逸れますが、最近は食べ物の事でもプログラムの事でも病気の事でも、何調べてもコピペサイトの広告サイトばっかりです。検索がコピペサイトで溢れかえっています。もう昔のような個人の有用なサイトは発見できなくなりました。
もう調べるのに疲れましたので取り急ぎ下記の関数は特殊文字が扱えるのかどうかを教えてください。
もし使えるならhtmlentitiesをどのように記載すれば良いかも教えてもらえると助かります。
ちなみに$page2=htmlentities(explode(",", $str));みたいに()で囲んでみても<とかは使えませんでした。自分はhtmlソースを色々弄りたいので特殊文字を抜き取ったりできないとすごく困ります・・。
$colors = explode(",", $str);
echo substr('ABCDE', 0, 3);
echo stripos('PHP入門 index.html', 'h');
echo str_pad($str, 8);
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
とりあえず質問文の関数をpaiza.ioで実行した例。
&や<を問題なく扱えてるのが分かるかと。回答No.1の参考として。https://paiza.io/projects/e/IkdUBXnaKIRFkk_3oaTIog
□コード
<?php
$page = 'あいうえお<title>https://www.yahoo.co.jp/</title>かきくけこ';
$pag2 = stristr( $page, '<title>' );
$str = '<R,G,B>';
$colors = explode( ",", $str );
echo $page.PHP_EOL;
echo $pag2.PHP_EOL;
echo substr( 'A<BCDE', 0, 3 ).PHP_EOL;
echo stripos( 'PHP入門 & index.html', 'h' ).PHP_EOL;
echo stripos( 'PHP入門 & index.html', 'i' ).PHP_EOL;
echo '|'.str_pad( $str, 8 ).'|'.PHP_EOL;
echo var_dump( $colors );
?>
No.1
- 回答日時:
よくわかりませんが「特殊文字が使えない」とは、
"<", ">", "&" を Web ブラウザ上で表示できない、
という意味でよろしいでしょうか。
それならば、表示方法を間違えているだけです。
htmlentities は、文章を「編集する処理」ではなく「表示する処理」に絡めましょう。
$page = 特殊文字を含む文章を返すexplodeやstr系の処理();
echo htmlentities($page, ENT_QUOTES, 'UTF-8');
いちいち htmlentities と指定するのも面倒なので、
実用的には専用関数を用意します。
// 特殊文字をブラウザ上で表示できるようにエスケープ
function h($s) {
_ return htmlentities($page, ENT_QUOTES, 'UTF-8');
}
function hout($s) {
_ echo h($s);
}
...
$page = 特殊文字を含む文章を返すexplodeやstr系の処理();
echo h($page); // echo 時は h を「必ず」付ける
hout($page); // いっそのこと echo 無しにするのも手
参考) 有名フレームワークによる実装例
https://api.cakephp.org/3.8/function-h.html
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- PHP SQLとPHPの連結方法がわからないのでアドバイスお願い致します 1 2022/07/12 12:16
- PHP PHPの構文で間違えが分からない 5 2022/07/11 16:38
- PHP PHP MySql ページング 2 2022/09/20 06:38
- PHP アップロード画像数でCSSを分けることに成功したのですが、画像の横に文字を並べることが出来ません。 3 2023/07/28 17:16
- PHP htmlspecialcharsが機能していないです。 バグですか? 1 2022/04/05 01:22
- オープンソース Python openpyxlを使用したセル番地の使用について 1 2023/08/03 22:05
- iPhone(アイフォーン) iPhone13の読み上げコンテンツについて。 2 2022/07/08 04:52
- Windows 10 bash の -z オプションがうまく動作しない原因を教えて下さい。 4 2023/03/22 18:04
- C言語・C++・C# c言語 プログラムのエラー 1 2023/02/11 20:31
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Dosブロンプトでtabを出力したい
-
switch()文で値の大小比較
-
小数点以下0の非表示
-
オブジェクトの中身の判定(PHP)
-
syntax error, unexpected 'ech...
-
Parse error というエラーの対...
-
shシェルスクリプト 空白行の...
-
findstrのerrorlevel
-
シェルで正規表現 YYYY/MM/DD
-
ゼロとNULLを区別して number_f...
-
PHP .csvの取り込み後、表の列...
-
RSSにdiv,ul classを付けたいの...
-
pdftkを使った処理をバッチファ...
-
バッチファイルでpingの結果を...
-
DTOとEntityの差は何ですか。
-
Yahoo! JAPAN IDを新規取得でき...
-
「取得先」という表現について
-
wordの差し込み印刷で文字...
-
ログインしたら他からログイン...
-
【C#】DataGridViewの最大列数...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Dosブロンプトでtabを出力したい
-
switch()文で値の大小比較
-
バッチファイルでpingの結果を...
-
shシェルスクリプト 空白行の...
-
phpでcookieがうまく保存されない
-
findstrのerrorlevel
-
syntax error, unexpected 'ech...
-
小数点以下0の非表示
-
バッチファイルで、全てのウィ...
-
オブジェクトの中身の判定(PHP)
-
PHPで訪問回数を表示するカウン...
-
ゼロとNULLを区別して number_f...
-
bashの関数の引数にスペースが...
-
ナベアツプログラム(3の倍数...
-
変数の受け渡しによる画像の表示
-
PHP一覧表示した項目にリンクを...
-
Windowsのsetコマンドでの小数...
-
pdftkを使った処理をバッチファ...
-
Parse error というエラーの対...
-
DBのハッシュ化したパスワード...
おすすめ情報