![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
お世話になります。
phpを猛学中ですが、なかなかわかりません。
特に正規表現は難解です。
大文字小文字を区別しないで文字列を置換したり、その位置を求めたいのです。
PHP5なら、文字列$htmlの中の</BODY></body></Body>などをを</div>に変換
$html = str_ireplace('</body>','</div>', $html);
また、文字列の位置を求める
$pos0 = stripos($html, "</body>");
と、いうことで簡単だったのですが、
いざ、サーバへアップしてみるとなんと、そのサーバは、PHP4でした。
それで、動作しなくなってしまいました。
同じことをPHP4で処理するにはどのようにしたらよいのでしょうか。
QNo.4013255などを参考に考えたのですが、どうもだめです。
よろしくお願いします。
No.3ベストアンサー
- 回答日時:
<?
$html="hogehogehoge</BODY>fugafugafuga";
if(preg_match('/(.*?)<\/body>/i', $html,$matches)) $pos0 = strlen($matches[1]);
print $pos0;
?>
で</body>までの文字列をマッチさせれば、その長さが、出現位置に
なりますね?
この回答への補足
yambejpさん、お早うございます。
ご丁寧にレスありがとうございます。
正規表現でできないものかと考えていたので、とてもありがたいレスでした。
しかし、どういうわけか、$pos0=0となってしまいます。
配列の番号など変えてみましたが、
strlen($matches[0]);だと、7
strlen($matches[1]);だと、0
strlen($matches[2]);だと、0
と、なってしまいます。
No.2
- 回答日時:
>しかし、文字列の位置を求めることはできません。
位置を求める方はlowercaseにしたものを対象に小文字で位置を求めればいいのでは?
$pos0 = strpos(strtolower($html), "<body");
$html = substr($html,$pos0);
shimixさん、お早うございます。
できました。
$html自体全てを小文字に変換してから、位置を求めるかと思ったのですが、
$html自体、小文字に変換されていませんでした。
どうもありがとうございました。
No.1
- 回答日時:
preg_replace()でやるといいでしょう
<?
$html="</BODY></body></Body>";
print htmlspecialchars($html);
$html = preg_replace('/<\/body>/i','</div>', $html);
print htmlspecialchars($html);
?>
この回答への補足
yambejpさん、レスありがとうございます。
大文字小文字区別なしに変換できました。
しかし、文字列の位置を求めることはできません。
$html中の<bodyまでを削除するのに、
PHP5なら
$pos0 = stripos($html, "<body");
$html = substr($html,$pos0);
で、可能ですが、
php4ですと、striposが使えません。
これに変わる関数を探すのですが、見つけることができません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
変数にHTMLを代入する場合
-
正規表現でタグの置換をしたい...
-
「ブログのコメント欄にリンク...
-
VBAのコマンドボタンの文字列の...
-
文字の入力で横バー上段、中断...
-
ファイルから読み取った改行文...
-
文字列中の両丸括弧を取り除くV...
-
エクセルでの漢字、カタカナ、...
-
エスケープ文字の復帰(¥r)と...
-
改行コードが半角スペースにな...
-
jsp 改行コードで改行させて表...
-
エクセルVBA 文字列領域が不足...
-
VBAを使ってHTMLソースから特定...
-
COBOLの改行
-
C# DataGridViewのセルを改行禁...
-
VBA ASC関数で変換できない文...
-
文字列の括弧について(初心者)
-
○分から○時間○分に変換
-
メッセージボックスで1025文字...
-
ソースコードの1行が長いとき...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Nvuで作成したhtmlをコピペして...
-
変数にHTMLを代入する場合
-
タグにはさまれている文字以外...
-
phpの正規表現でstyle="●●"を削...
-
htmlのソースからテーブルの値...
-
[php][正規表現]タグ以外を削除...
-
正規表現でタグの置換をしたい...
-
URLの連続アクセス
-
csobjというタグについて
-
reuterの記事をbeautiful.soup....
-
JSFタグのfタグとは
-
PHPの正規表現でHTMLタグの内容...
-
htmlspecialchars関数を使いな...
-
Aタグってなんですか?
-
PHPスクレイピングが上手くいき...
-
preg_replaceでの正規表現によ...
-
Strutsでリンクを動的に生成したい
-
URLの結合
-
タグをとるのに、SAX
-
アフィリエイトタグについて質...
おすすめ情報