- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:alt属性を残してタグを排除)
alt属性を残してタグを排除
このQ&Aのポイント
- alt属性を残してタグを排除する方法について質問します。
- 変数に代入された文字列の中から、タグを排除しながらalt属性やtitle属性を残す方法を教えてください。
- $html変数に代入された文字列のタグを除去するためにstrip_tags()を使用していますが、alt属性などのブラウザ上で表示させるための文字を残す方法を知りたいです。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
とりあえずaltだけの例ですが、こんな感じかな <?php //$a=file_get_contents("hogehoge.html"); $a=<<<_TAG_ <html><body> タグ削除テスト<br /> <img src="logo.gif" alt="alt内の文字文字" /> <p>中間文字</p> <IMG SRC="Image.jpg" ALT="ALT内のコメント"> 終わり文字 </body></html> _TAG_; $arr=preg_split("|<[^>]*alt=[\"\'][^\'\"]*[\"\'][^<]*>|i", $a); preg_match_all('|<[^>]*alt=[\"\']([^\'\"]*)[\"\'][^<]*>|i',$a,$matches); $txt=strip_tags($arr[0]); print_r($matches[1]); foreach($matches[1] as $i=>$val){ $txt.=$val.strip_tags($arr[$i+1]); } echo $txt; ?> title属性にも対応しようとするとちょっと複雑になりますが工夫してみてください
お礼
mpx様 こんばんは。早速のご回答を有難う御座います。 質問した後も作業を進めておりまして、質問の中に書いたようなやり方で行ってみましたが、mpx様の方がはるかにソースが短く、勉強不足を痛感させられました。 また質問させて頂くこともあるかと思いますが、今後とも宜しくお願い申し上げます。有難う御座いました。