[PHP-users 3273] Re: 変数内の”のはずし方
松嶋祥文
php-users@php.gr.jp
Sat, 03 Nov 2001 12:50:58 +0900
こんにちは、松嶋@ITBoost です。
| PHP4でstr_replaceなどで、置き換えようとしましたが、"そのものがエスケープしても置
| き換わりません。
どのようにされたのかわかりませんが、書くとすれば
別スレッドの小倉さんのコードを拝借して(^^;;) 、
$fp = fopen("test.csv", "r");
while ($a = fgetcsv($fp, 1000, ',')) {
for ($i = 0; $i < count($a); $i++) {
$a[$i] = ereg_replace('^"', '', $a[$i]);
$a[$i] = ereg_replace('"$', '', $a[$i]);
$csv[$i][] = $a[$i];
}
}
などとすることで取れるとおもいます(ベタな書き方ですみません)。
ダブルクォーテーションがデータ中に存在しないことが保証されてい
るなら、下記のようになります。
while ($a = fgetcsv($fp, 1000, ',')) {
for ($i = 0; $i < count($a); $i++) {
$csv[$i][] = $a[$i];
}
$csv[$i] = str_replace('"', '', $csv[$i]);
}
# ここで一括で
# $csv = str_replace('"', '', $csv) ;
# とかでもいいのかな?
元の CSV は、Excel のデータでしょうか?
その場合、Shift-JIS ですね。
いずれにせよ、日本語が含まれるなら ereg_replace よりも、マル
チバイト対応の mbereg_replace などを使ったほうが安全です。
お使いのレンタルサーバーで使えないかもしれませんが。
# 「"」の置換だけなら、mb 系の関数を使わなくても問題ないかな?
--
,-------------+
+---------------------------------------------' |
| システム開発&エンジニアスクール アイティーブースト |
| 松嶋 祥文 [ mats@itboost.co.jp ] ,-------------+
| +----------------------------------------------' |
| | ★ Linux 関連の技術情報満載! http://www.itboost.co.jp/ |
+-|■■■■■ Web アプリケーション開発、請け負います!■■■■■|
+-------------------------------------------------------------+