はじめての自宅サーバ構築 - Fedora/CentOS -
Last Update 2018/01/16
[ 更新履歴 ] [ サイト マップ ] [ 質問掲示板 ] [ 雑談掲示板 ] [ リンク ]
トップ >> 当サイト情報 >> スレッド

このページは表示専用です。新規投稿・レスや最新情報はこちらです。

このスレッドはクローズされています。記事の閲覧のみとなります。

 PHPでのデータファイル読み込みトラブル
日時: 2006/01/24 19:35
名前: はしもと

初めてサーバを作成したときは大変お世話になりました。早1年順調に稼動しています。
今回、『fedora core 4』で新たにサーバを構築しようと思い、作業を進めていきました。
WEBサーバ構築(apache,php)後、現在稼働中のサーバ(FC2)からデータを移したところ、
CSVデータ読み取り部分でエラーになってしまいます。CSVデータ無しの場合、正常に表示されるので
読み取り部分に何か問題があるのかと思うのですが、なかなか解決できません。
別に稼動しているFC2のサーバでは問題なく表示されます。
質問内容がこの場に合わないものかもしれませんが、どなたかご教授頂ければと思います。

■ コンテンツ関連情報

 Re: PHPでのデータファイル読み込みトラブル ( No.1 )
日時: 2006/01/24 21:16
名前: 管理者

どのようなエラーが表示されますか?

また、読み取り部分のソースは公開できますか?
 Re: PHPでのデータファイル読み込みトラブル ( No.2 )
日時: 2006/01/25 10:22
名前: はしもと

ご返信ありがとうございます。
エラーメッセージはありません。データ読み取り部分以降が表示されません。
読み取りデータがない状態だと、問題なく全て表示されます。
ちなみに簡単なデータ読み取りのソースを用いても同じ状況になります。
別スレッドにソースを公開しておきます。
よろしくお願いします。
 Re: PHPでのデータファイル読み込みトラブル ( No.3 )
日時: 2006/01/25 10:24
名前: はしもと


<?php
require_once( "common.php" );
?>
<HTML>
<HEAD><TITLE>02-01</TITLE></HEAD>
<BODY>
<H1>アドレス帳</H1>
<?php
 $AddressData = LoadTextFile( "./data/m_addr.txt", "EUC_JP", "SJIS" );
 if ( $AddressData == false ) {
  echo( "データはありません。" );
 } else {
  ?>
   <TABLE BORDER="1">
  <?php
  for ( $i = 0; $i < sizeof( $AddressData ); $i++ ) {
   $line = explode( ",", $AddressData[ $i ] );
   ?><TR>
   <TD BGCOLOR="#FFFFCC"><?php echo( $i + 1 ) ?></TD>
   <TD><?php echo( $line[ 0 ] ) ?></TD>
   <TD><?php echo( $line[ 1 ] ) ?></TD>
   </TR>
   <?php
  }
  ?></TABLE><?php
 }
?>
</BODY></HTML>

【common.php】
<?php
// LoadTextFile
//  テキストファイルの内容を配列に読み込みます。
function LoadTextFile( $FilePath,
            $encoding = "EUC_JP",
            $s_encoding = "SJIS" ) {
 if ( file_exists( $FilePath ) == false ) {
  return false;
 }
 $data = file( $FilePath );
 if ( sizeof( $data ) < 1 ) {
  return false;
 } else {
  array_convert_encoding( $data, $encoding );
  return $data;
 }
}

// array_convert_encoding
//  配列の内容すべてに対して文字コードの変換処理を行います。
function array_convert_encoding ( &$data,
                 $encoding = "EUC_JP",
                 $s_encoding = "SJIS" ) {
 for ( $i = 0; $i < sizeof( $data ); $i++ ) {
  $data[ $i ] = mb_convert_encoding( $data[ $i ], $encoding, $s_encoding);
 }
}
?>
【m_addr.txt】
テスト太郎,taro@example.com
てすと花子,hanako@sample.co.jp
ピー・エイチ・ピー,phpdayo@example.net
あ・パッチ,apache@example.ad.jp
 Re: PHPでのデータファイル読み込みトラブル ( No.4 )
日時: 2006/01/25 10:28
名前: はしもと

以上のプログラム実行時

【FC2サーバの場合】
   問題なく表示されます。
【FC4サーバの場合(今回構築)】
   『アドレス帳』の表示のみ。エラーメッセージは無し。
 Re: PHPでのデータファイル読み込みトラブル ( No.5 )
日時: 2006/01/25 12:50
名前: 管理者

まず、以下のコマンドで「php-mbstring」をインストールしてください。

# yum install php-mbstring

この後、php設定ファイル「/etc/php.ini」中の「mbstring.language」を"#"を外して有効にします。

# vi /etc/php.ini
[mbstring]
; language for internal character representation.
mbstring.language = Japanese

apacheを再起動すれば、ファイルを読むことが可能です。
 Re: PHPでのデータファイル読み込みトラブル ( No.6 )
日時: 2006/01/26 10:59
名前: はしもと

ご教授ありがとうございました。
上記のコマンドを試みたところ、データファイルを読み込むことができました。
大変助かります。今後も、いろいろチャレンジしていきたいと思いますので、
また何かありましたら、お世話になります。
今回はありがとうございました。

■ その他

ページ先頭へ


Copyright(©)2004-2018 First home server construction. All Right Reserved.