• ベストアンサー

文字列で2行だけ削除する方法。

PHP5を使っています。 file_get_contentsで文字列を取得したのですが 先頭行2行と最後の行を削除する方法が知りたいです。 改行はLFですがCR+LF,CRでも対応したいです。 また、文字コードもUTF8ですが、どんな文字コードでも対応したいです。 どんな方法が最もスマートな方法でしょうか?

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

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

file()で配列にうけてみては? <? $fname="hoge.csv"; $datas = file($fname); $max=count($datas)-1; unset($datas[0],$datas[1],$datas[$max]); print implode($datas); ?>

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • VB6のテキスト処理 さまざまな文字コード/改行で対応

    VB6のテキスト処理で、Open InputとLine inputを使った場合に 文字コード/改行コードが SJIS/CRLFの時は正しく1行を読み込む事ができますが、改行がLFの時は正しく1行を読み取りません。 改行コードがLFもしくはCRの場合でも正しく1行を読み取る方法はあるのでしょうか? また、文字コードに関してもEUCやUTF-8,JISでも対応できる方法がありましたら教えて下さい。

  • 文字化けしたテキストファイルをもとに戻す

    紙copi を使用して文字化けしてしまいました。 問い合わせると、 『文字コードUTF-8のファイルですが、改行コードが「LF」となっております。 紙copiではどの文字コードファイルについても新規ファイル作成時には一律に 「CR+LF」の改行コードにて保存しますので、新規作成時に「LF」の改行コード ファイルが作成されることは通常ないものと考えております。』 で、改行コードが「LF」のテキストファイルを「CR+LF」の改行コードのものに 戻す方法がありますか? よろしくお願いします。

  • PHPでの文字列置換について

    こんにちは PHPにて丸カッコ内の文字列を取得しようとしています。 対象の文字列は、「坂(さか)」という文字列の全角丸カッコ「()」内になります。 正規表現でやればすぐに取得できるのかもしれませんが、正規表現の知識が無いため 力ずくでやってみようとしました。 そこで、「(」で文字列の位置を取得して…と考えて色々やったのですが、 この全角丸カッコ「(」が、mb_strposでも位置を検知できず、 全角丸カッコ「(」を半角にして対応してみようかとmb_ereg_replace('(','(','坂倉武史(さかくらたけし)');としようとしても、変換されず困っております。 ちなみに「坂(さか)」という文字列は、 ネット上のあるHTMLから、file_get_contentsでURLを指定してから 取得して、その文字コードがEUC-JPなので、 mb_convert_encoding($dataXML, "UTF-8", "EUC-JP"); で、UTF-8に変更しております。 文字コードの問題のかもしれませんが、答えがみつかりません。 1。正規表現で取得できるのであれば、正規表現の書き方をお教えいただけますでしょうか。 2。正規表現が難しいのであれば、力ずくでやるのでこの「(」全角丸カッコの始まりの検知方法をお教えいただけますでしょうか。 PHPの実行環境は、 PHP5.3 mbstring.language  japanese mbstring.internal_encoding  UTF-8 mbstring.encoding_translation  ON default_charset  UTF-8 UNIX 文字コード UTF-8 ソース文字コード UTF-8 です どうぞよろしくお願いいたします。

    • ベストアンサー
    • PHP
  • PHPの文字コードどのように設定すればいいですか?

    PHPをテキストエディタ(TeraPad)で、書こうとしているのですが、文字コードの設定がわかりません。 初期文字コード SHIFT-JIS JIS EUC Unicode UTF-8 UTF-8N いろいろあってどれを選んだらいいのかわかりません。 今はSHIFT-JISにしてます。 保存文字コード 自動 今は自動にしてます。 初期改行コード CR+LF 今はCR+LFにしてます。 保存コード 自動 今は自動にしてます 間違っている、又はこちらのほうがいいというのがありましたら是非教えてください。よろしくお願いします。

    • ベストアンサー
    • PHP
  • 改行だけの行の削除

    $data1 = file_get_contents("xxxx.txt"); で、読み込んだデータの中に 「 aaaaaa bbbbbb xxxxx yyyyyy 111111 2222222 」 というレコードが入っていたとします。 この中で、改行だけの行を削除し、$data2 に移したいのです。 先頭行と最終行は、trimで削除できましたが、 $data1 = str_replace("^\\n", "", $data2); でも除去できません。 どうすればいいのか、お教えください。

    • ベストアンサー
    • PHP
  • 【unix】nkfで文字コードを変えずに改行コードを変えたい

    unix(BSD)初心者です。 PHP経由でunixを操作、ファイルの加工をしております。 nkfコマンドにてLF改行をCR+LF改行にしたいのですが、 ・文字コードは無変化で改行コードだけ変える などということはできるのでしょうか? いろいろな文字コードのファイルが混在している場合に文字コードはそのまま保ちつつ改行コードはCR+LFに統一したいのです。 お詳しい方よろしくお願いします。

  • 改行コードCR(\r)をアンダースコア(_)に変換

    AIX、Kシェルです。 ファイルに出力された改行コードCR(\r)をアンダースコア(_)に変換したいのですが、 文字コードSJISだと期待通りの結果になるのですが、UTF-8だと全角の手前で止まってしまいます。 試したコマンドは下記です。 cat file.txt | tr "\r" "_" > tmpfile ex) file.txt(最終行は半角spaceと全角space) 10(改行コード=LF) 11(改行コード=CRLF) 12(改行コード=CR) 1(改行コード=LF) 2(改行コード=CRLF) 3(改行コード=CRLF) ああ(改行コード=CRLF)  (改行コード=CR) 【結果】tmpfile 10(改行コード=LF) 11_(改行コード=LF) 12_1(改行コード=LF) 2_(改行コード=LF) 3_(改行コード=LF) ああ_(改行コード=LF)  _ これがUTF-8だと12までは変換できるのですが、以降が出力されません。 UTF-8でも最後まで変換されるようにするにはどうすれば良いのでしょうか? 初心者で申し訳ありません。 お手数ですが、何卒宜しくお願い致します。

  • エクセルの文字列の抽出方法について

    ★★エクセルの文字列の抽出方法について★★ 下記の「対象セルの内容」のような感じで1つのセルの中に複数行の文字列が入っているのですが、 下から3行とか4行とかを指定して文字列を抽出したいと考えています。 ■対象セルの内容 [改行] [改行] [改行] a/b/r1.php[改行] a/b/r2.php[改行] a/b/r3.php[改行] a/b/r4.php ■抽出したい値 a/b/r2.php[改行] a/b/r3.php[改行] a/b/r4.php 何かしらうまい方法はないでしょうか。 ご教授なにとぞよろしくお願いいたします。

  • データ転送時の文字列について

    PDFファイルをデータC++でのCGI転送しWeb上で表示するのですが 先頭に改行コード(LF:バイナリコード”OA”)が勝手についてしまいます。 なぜか分かりません。 先頭のLF(改行コード)の削除する方法、もしくは根本的な対応など IE、ACROBATの情報などありませんでしょうか? VBオンリーのものでしてVBでのMID関数みたいなものは無いかと探してはいるのですが… よろしくお願いいたします。

  • Excelセル内の改行を含む文字列の1行目抽出

    Excelセル内の改行を含む文字列があり、関数を使って、その1行目だけ抽出したい。 たとえば、下記のような式を書きました。「改行コード」おかしみたいで動作しません。 Left("A1", Find(vbCrLf, "A1")) (改行コードをさがして、そこまでの文字列を切り取る) これをVBAで書く方法があれば、コードを教えてください!