• ベストアンサー

あるマルチバイト文字が表示されるまでを削除

質問させていただきます。 あるテキストファイル(a.txt)があり、そのテキストファイルはマルチバイト(漢字など)文字列です。 この文字列(a.txt)を同階層にある別のHTMLファイルに埋め込みたく思い、 下記のようなHTMLファイルを作成しました。 ====~.html==== <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"> <html lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_Jis"> <meta http-equiv="Cache-Control" content="no-cache"> <title>タイトル</title> </head> <body> <? include "./a.txt"; ?> <br> </body> </html> ====~.html==== そこでこの文字列ファイルを編集後に上記ページで表示させたく思い、 文字列の最初から、最初に"帆"という文字列が表示されるまでの 全ての文字列を削除したいのですが、下記では上手くいきません。 ====mojisakujyo.php==== <? $text1 = "./a.txt"; $fp1 = fopen($text1, "rb+"); ltrim($fp1, "帆"); fclose($fp1); ?> ======== なぜダメなのか解決できません。ご教授願います。

  • PHP
  • 回答数2
  • ありがとう数2

質問者が選んだベストアンサー

  • ベストアンサー
noname#24096
noname#24096
回答No.2

ファイルの内容を書き換えるためには おおまかにいうと  1.ファイルを開く  2.読み込む  3.読み込んだものを加工する  4.加工したものを書き出す  5.ファイルを閉じる という手順が必要です。 質問者さんのスクリプトは #1のおっしゃる通り、 1、3、5 しか存在しませんので処理が足りません。 (3はそのままではちょっとヘンですが) 「php」「ファイル操作」などでググってみてください。

wf3255
質問者

お礼

ありがとうございます。 無事解決しました!!

その他の回答 (1)

noname#39970
noname#39970
回答No.1

php側 >$fp1 = fopen($text1, "rb+"); >ltrim($fp1, "帆"); ファイルを開いただけで何も読み込んでない ファイルを開くのと読み込むのは別の作業

wf3255
質問者

お礼

ありがとうございます。 無事解決しました!!

関連するQ&A

  • 表示すると文字化けします

    下記のファイルが表示されると文字化けしてエンコードを修正しないとみれませんなぜでしょうか? 日本語EUCになってしまします。 <HTML> <HEAD> <META http-equiv="Content-Type" content="text/html; charset=EUC-JP"> <META http-equiv="Content-Style-Type" content="text/css"> <TITLE></TITLE> <META http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <META http-equiv="Content-Style-Type" content="text/css"> </HEAD> <BODY> <TABLE border="1"> <TBODY> <TR> <TD bgcolor="#ffff00" width="699"><B><FONT size="+2">登録ありがとうございました</FONT></B></TD> </TR> <TR> <TD height="99" width="699"><B>■<A href="http*************************">使いこなすために</A>手順に沿って進んでください</B>→<A href="http**************************">次へ進む</A></TD> </TR> </TBODY> </TABLE> </BODY> </HTML>

    • ベストアンサー
    • HTML
  • フレームページに文字が表示されなくて困ってます><

    フレームページに文字が表示されなくて困ってます>< フレームページは表示されるのですがmenu.html.htmlやcontents.html.htmlに書いた文字が表示されません どこが間違っているのでしょうか? ーーフレームページーー <HTML> <HEAD> <META http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <META http-equiv="Content-Style-Type" content="text/css"> <TITLE>タトル</TITLE> </HEAD> <FRAMESET cols="100,*"> <FRAME name="menu.html.html" src="file:///D:/happystyle/menu.html.html"> <FRAME name="contents.html.html" src="file:///D:/happystyle/contents.html.html"> <NOFRAMES> <BODY> <P>このページを表示するには、フレームをサポートしているブラウザが必要です。</P> </BODY> </NOFRAMES> </FRAMESET> </HTML> ーーmenu.html.htmlーー <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"> <HTML> <HEAD> <META http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <META http-equiv="Content-Style-Type" content="text/css"> <TITLE>タイトル</TITLE> </HEAD> <BODY> 画像置き場 </BODY> </HTML> ーーcontents.html.htmlーー <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"> <HTML> <HEAD> <META http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <META http-equiv="Content-Style-Type" content="text/css"> <TITLE>タイトル</TITLE> </HEAD> <BODY> 画像表示 </BODY> </HTML> というHTMLを書きました! フレームに表示させたいページのHTMLはフレームと同じフォルダに入っているのですがこれと関係ありますか? どこがおかしいのかまったくわからないです 教えてください!

  • html テキストボックスに文字が残って困っています。

    html php 初心者ですよろしくお願いいたします。 <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <meta http-equiv="Pragma" content="no-cache"> <title>ひとこと掲示板</title> </head> <body> <form method="get" action="bbs_form.php"> <input type="text" name="content" size="60"> <input type="submit" value="送信"> </form> <hr> <?php $contents = file_get_contents('aaaa.txt'); print($content); $content = htmlspecialchars($_GET['content']); if ($content) { $contents = "$content<hr>\n$contents"; $fp = fopen("aaaa.txt", "a"); @fwrite( $fp, "$content"."/"); fclose($fp); } $c=0; for($a = 0 ; $a != 10000 ; $a++){ $ss = mb_substr($contents,$c,1); if($ss == "/"){ print("<br><hr />"); } else{ print($ss); } $c++; } $content = ""; ?> </body> </html> このプログラムでテキストボックスに値を入力します。 そしてf5で更新を押すとキャッシュがのこってるせいなのか、 入力していないはずのテキストボックスに値がのこりつづけます。 その値を消してクリアにしたいのですが、 いい方法はありませんでしょうか? よろしくお願いいたします。

  • 文字化けについて質問です。

    文字化けについて質問です。 例えば、 text.txt(あいうえお) とテキストファイルにあります。 そのファイルを読み込んで、 echo "$a"; で表示すると、文字化けします。 ファイルの中身がaaaaaaのように英数字なら普通に表示されるのですが・・・ <meta http-equiv="Content-Type" content="text/html; charset=shift-jis" /> と今は定義しています。 utf-8にしても文字化けしてしまいます。 解決策はあるでしょうか?

    • ベストアンサー
    • HTML
  • HTMLのソースを見ると文字化けしてる。普通の画面表示は問題ない。。。EUCなわけでもない。

    <head>で <meta http-equiv="content-type" content="text/html;charset=Shift_JIS"> と指定していて、IEのキャッシュもクリアして、 文字コードはshift_jisで書いてあるファイルで ソース上で <!-- ステータスバー文字列表示 --> と書いてあるコメントの文字列表示の「表示」の 部分がIEからソース表示すると文字化けしています。 これは何故なのでしょうか? その一部分のみです。 CGIなのですが、 CGIのうちのHTMLソースを吐き出しているところです。

    • ベストアンサー
    • HTML
  • テキストがうまく反映されない!

    携帯サイトを初めてつくろうと挑戦しています。 <html> <head> <meta http-equiv="Content-Type" content="text/html;charset=Shift_JIS"> <meta http-equiv="Cache-Control" content="no-cache"> <title>題名</title> </head> <body bgcolor="#ffffcc" text="#000000" link="#3366ff" alink="#000099"> <front color="#ffffff">題名</front> </body> </html> 上記のようにテキストを書いたんですけど、HTML化しても背景の色とか変わってないんです。。真っ白です。。何が原因でしょうか??※TeraPadを使ってテキストを書いています。

  • ブラウザの戻るができないようにしたい

    ページ内はHTMLファイルですが、そのページのiframe内にperlで動的ページを表示させています。 クリック自体はifream内の動的ページですが、ページのキャッシュが残っているらしく、ブラウザの戻るが有効になります。 戻るができないようにしたいのですが何か良い方法はありますか? 以下、効果はありませんでした。 ファイル1 test.html <html> <head> <title>HTML</title> <meta http-equiv="Pragma" content="no-cache"> <meta http-equiv="Cache-Control" content="no-cache"> <meta http-equiv="Expires" content="Fri, 31 Dec 2004 23:59:59 GMT"> </head> <body> <ifream src="test.cgi"></ifream> </body> </html> ファイル2 test.cgi print "Content-type: text/html\n"; print "Pragma: no-cache\n"; print "Cache-Control: no-cache\n"; print "Expires: Thu, 01 Dec 1994 16:00:00 GMT\n\n"; print <<EOT; <html> <head> <title>CGI</title> <meta http-equiv="Pragma" content="no-cache"> <meta http-equiv="Cache-Control" content="no-cache"> <meta http-equiv="Expires" content="Fri, 31 Dec 2004 23:59:59 GMT"> </head> <body> <a href="test.cgi">sample</a> </body> </html> EOT exit;

    • ベストアンサー
    • Perl
  • ファイル生成について(C初心者)

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html lang="ja"> <head> <meta http-equiv="Content-Language" content="ja"> <meta http-equiv="Content-Style-Type" content="text/css"> <meta http-equiv="Content-Script-Type" content="text/javascript"> <meta http-equiv="refresh";URL=http://***.**.**/***/***/ABCD001.html"> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> </head> <body> </body> </html> ファイル名=ABCD001.html お世話になります。 上記のようなhtmlファイルがあって http://www.***.**.**/***/***/ABCD001.htmlの ABCD001.htmlの部分だけ変更して新しくファイルを生成しようと思います。 変更する場所のリストはテキストファイル(list.txt)に入っており ABCD001.html~ABCD100.htmlまであります。 そのため最終的には100個のファイルが生成されます。 このようなCのプログラムを作成したいのですが どうやればいいのでしょうか? fwrite・fscanfを使用するのではないかと思いましたが よくわかりませんでした。

  • フォームで送った文字がおかしくなる

     フォームから文字を記入して、送信ボタンを押すと次のページでその文字が表示されるという初歩的なプログラムをつくっています。しかし、フォームからPOSTでデータを送る場合、ある特定の一文字の漢字だけを記入して送信ボタンを押すと正常に表示されません。 例えば、「卒業」だと正常に表示されるのに「卒」だと「'」になってしまい、他にも「文」や「動」を一文字だけ記入すると、何も表示されません。ひらがなやカタカナ、複数文字の場合は全て正常です。原因が分からなくて困っています。 a.php (入力フォーム) <HTML> <HEAD> <TITLE>テキスト送信のテスト </TITLE> <META http-equiv="Content-Type" content="text/html; charset=EUC_JP"> </HEAD> <BODY> <FORM method="POST" action="view.php"> 入力してください: <INPUT type="text" name="name"> <BR> <INPUT type="submit" value="送信"> </FORM> </BODY> </HTML> view.php (表示するphpファイル) <HTML> <HEAD> <META http-equiv="Content-Type" content="text/html; charset=EUC_JP"> <META http-equiv="Content-Style-Type" content="text/css"> </HEAD> <BODY> <?php print $_POST["name"]; ?> </BODY> </HTML> どこか間違いがあるでしょうか? a.phpとview.phpは両方とも日本語(EUC)改行=LFで保存しています。 phpのバージョンは5.1.1です。よろしくお願いします。

    • ベストアンサー
    • PHP
  • 文字化けを解決したい

    サイトを持つ管理人です。タグなどについてはかなり初心者です。 iPhoneなどの海外OSから閲覧すると文字化けしてしまうという報告を受けて、タグを色々いじっています。 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">を追加してみたのですが、これ単品だと私のPCから閲覧したときに文字化けしてしまいました。 そのため<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">と<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">を並べてみたのですが、これで海外OSからも文字化けを起こさなくなったのでしょうか? こんな感じのタグです↓ <head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <META NAME="GOOGLEBOT" CONTENT="NOINDEX, NOFOLLOW,NOARCHIVE"> <META NAME="ROBOTS" CONTENT="NOARCHIVE,NOINDEX,NOFOLLOW"> <meta name="viewport" content="width=380, maximum-scale=1.6" /> <title>練習</title> </head> 全てのスマホからもサイトを閲覧出来るようにするにはどうしたら良いでしょうか?それとも、全てのスマホから文字化けを防ぐことは不可能なのでしょうか? お知恵をお貸しください。

専門家に質問してみよう