お世話になります。
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で質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- JavaScript フォームが空欄の時にフォームの外をクリックすると、エラーが出るコードを調べています。 1 2023/06/25 11:51
- JavaScript javascriptのちょっとした動作不良(原因は突き止めたのですが) 1 2023/06/15 19:58
- PHP SQLとPHPの連結方法がわからないのでアドバイスお願い致します 1 2022/07/12 12:16
- PHP if(preg_match("/[^0-9]/",$gu_d)){意味を教えてください。 1 2022/05/06 05:37
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/07 21:04
- PHP PHPの構文で間違えが分からない 5 2022/07/11 16:38
- JavaScript jqueryを使ったスムーススクロールのコードを書いたのですが、HTMLコード内にある、a butt 2 2022/04/14 10:59
- PHP PHP MySql 画像を取得 1 2022/06/04 14:05
- PHP htmlspecialcharsが機能していないです。 バグですか? 1 2022/04/05 01:22
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
csobjというタグについて
-
reuterの記事をbeautiful.soup....
-
phpの正規表現でstyle="●●"を削...
-
HTML・特定のタグの使用可能か...
-
print "<img src=\\"0.jpg\\/>\...
-
変数にHTMLを代入する場合
-
objective-cでのHTMLタグ表示に...
-
PHPの正規表現でHTMLタグの内容...
-
VBAのコマンドボタンの文字列の...
-
ソースコードの1行が長いとき...
-
テキストファイルから改行コー...
-
エスケープ文字の復帰(¥r)と...
-
文字の入力で横バー上段、中断...
-
グレープシティのSPREAD...
-
エクセルのCOUNTIFが正しくカウ...
-
UTF8メールがLotus Notesで文字...
-
jsp 改行コードで改行させて表...
-
ExcelVBAでメールを作成してメ...
-
C++で空Enterの入力を判...
-
c# string型の変数に、ダブルク...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
reuterの記事をbeautiful.soup....
-
JSFタグのfタグとは
-
正規表現で複数行に渡る範囲を...
-
変数にHTMLを代入する場合
-
phpの正規表現でstyle="●●"を削...
-
Nvuで作成したhtmlをコピペして...
-
正規表現で指定範囲すべて除去...
-
正規表現でタグの置換をしたい...
-
Strutsでリンクを動的に生成したい
-
自分でタグ打ちして作ったペー...
-
php正規表現 相対パス→絶対パス
-
ASP.NET(C#)とhtmlの#include
-
PHPの正規表現でHTMLタグの内容...
-
csobjというタグについて
-
VBSでのhtmlタグ要素名の置換
-
htmlタグ間の特定文字置換
-
URLの連続アクセス
-
HTMLファイルの書き換え
-
htmlspecialchars関数を使いな...
-
javascriptの正規表現でhtmlか...
おすすめ情報