お世話になります。
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を探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
タグの中だけ改行を除去したい
-
PHPスクレイピングが上手くいき...
-
PHPに書く記述を教えてください
-
タグのエスケープについて
-
HTMLを組み込む場合。
-
htmlでflashを開く、画面サイズ...
-
VBSでのhtmlタグ要素名の置換
-
VBAのコマンドボタンの文字列の...
-
awkで改行を除いて文字列を抜き...
-
エスケープ文字の復帰(¥r)と...
-
C++で空Enterの入力を判...
-
「続行するには何かキーを押し...
-
Excel関数「COUNTIF」で”文字”...
-
SJIS→UTF-8変換後の文字化けに...
-
電話番号のチェック ハイフン...
-
multipart/form-dataの文字化け
-
C# DataGridViewのセルを改行禁...
-
PHPmailerでの添付ファイルの文...
-
メッセージボックスで1025文字...
-
PHP 複数の特定の文字列を抽出...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
正規表現でタグの置換をしたい...
-
htmlのソースからテーブルの値...
-
正規表現で複数行に渡る範囲を...
-
phpでhtmlのタイトルを取得する...
-
PHPの正規表現でHTMLタグの内容...
-
reuterの記事をbeautiful.soup....
-
横1行に2種類の画像を交互に5...
-
変数にHTMLを代入する場合
-
タグにはさまれている文字以外...
-
phpの正規表現でstyle="●●"を削...
-
JSFタグのfタグとは
-
Nvuで作成したhtmlをコピペして...
-
URLの結合
-
正規表現でHTMLタグの属性まで...
-
PHPスクレイピングが上手くいき...
-
firefoxで、特定の文字列を含む...
-
VBSでのhtmlタグ要素名の置換
-
preg_match と正規表現 で URL抽出
-
WordPressのhtmlエディタについて
-
objective-cでのHTMLタグ表示に...
おすすめ情報