Csv2Doc用のCSVファイルでcontent変数内の"の扱い  【解決済み】

質問全般・改善要望
返信する
アバター
min-o
メンバー
メンバー
記事: 324
登録日時: 2009年10月07日(水) 18:32

Csv2Doc用のCSVファイルでcontent変数内の"の扱い

投稿記事 by min-o »

-----
ご利用のサーバ: さくらインターネット ビジネスプロ
MODXのバージョン:  1.0.6J-r8
PHPのバージョン:   PHP 5.2.17
MySQLのバージョン: 5.5.28-log
ブラウザ: firefox 17(win xp/mac)
-----

お世話になっております。
Csv2Docを使って、コンテンツを登録しているのですが、content変数内にhtmlソースを使っています。
この場合"(ダブルコーテーション)の扱いに悩んでいます。

基にしているCSVが別のmodxサイトのデータベースから、コンテンツ部分を書き出し、エクセルで不要なものを削除、修正してアップロード用のcsvを作成しました。
データベースからCSV書き出し時に
---
フィールド区切り記号 ,
フィールド囲み記号 "
フィールドのエスケープ記号 \
Remove CRLF characters within fields チェック
---
にしました。

content変数内の"は\のままアップロードしたところ、class=\codetable\ となってしまいます。

\を"" に一括変換してアップロードすると、Csv2Docの確認では class="codetable" なのですが、
実際のリソースを開いてみると class=""codetable"" になってしまいます。

なにか良い方法はないでしょうか?
よろしくお願いいたします。
---------
おのうちみん
http://scifitique.org/
http://gender-sf.org/
アバター
yama
管理人
記事: 3251
登録日時: 2009年7月29日(水) 02:50

Re: Csv2Doc用のCSVファイルでcontent変数内の"の扱い

投稿記事 by yama »

添付のファイルを解答してmanager/actions/ディレクトリに上書きしてみてください。
管理画面のレポート→システム情報→詳細情報のタブにmagic_quotes_gpcという項目が追加されると思いますが、この値を教えていただけますでしょうか。
添付ファイル
sysinfo.static.zip
(4.47 KiB) ダウンロード数: 640 回
アバター
min-o
メンバー
メンバー
記事: 324
登録日時: 2009年10月07日(水) 18:32

Re: Csv2Doc用のCSVファイルでcontent変数内の"の扱い

投稿記事 by min-o »

返信ありがとうございます。

添付のファイルを解凍したところ
以下のエラーが出てファイル容量が0kb(開いても白紙)になります…
--------
正常に解凍できません。CRCが一致しないか、出力先ファイルが使用中です。
--------
---------
おのうちみん
http://scifitique.org/
http://gender-sf.org/
アバター
yama
管理人
記事: 3251
登録日時: 2009年7月29日(水) 02:50

Re: Csv2Doc用のCSVファイルでcontent変数内の"の扱い

投稿記事 by yama »

sysinfo.static.zip
(5.16 KiB) ダウンロード数: 755 回
アーカイバを変更してみました。こちらだとどうでしょう?
アバター
min-o
メンバー
メンバー
記事: 324
登録日時: 2009年10月07日(水) 18:32

Re: Csv2Doc用のCSVファイルでcontent変数内の"の扱い

投稿記事 by min-o »

今度は解凍できました。

magic_quotes_gpc On

になっています。
---------
おのうちみん
http://scifitique.org/
http://gender-sf.org/
アバター
yama
管理人
記事: 3251
登録日時: 2009年7月29日(水) 02:50

Re: Csv2Doc用のCSVファイルでcontent変数内の"の扱い

投稿記事 by yama »

https://www.google.co.jp/search?q=php_f ... i+htaccess
php.iniにmagic_quotes_gpc = Offと書くか、.htaccessにphp_flag magic_quotes_gpc Offと記述すると改善されるでしょうか?
アバター
min-o
メンバー
メンバー
記事: 324
登録日時: 2009年10月07日(水) 18:32

Re: Csv2Doc用のCSVファイルでcontent変数内の"の扱い  【解決済み】

投稿記事 by min-o »

php.iniにmagic_quotes_gpc = Off で変更したところ
以下の結果になりました。

× csv class=\codetable\ → 確認Csv2Doc class=\codetable\ → リソース class=\codetable\ 
○ csv class=””codetable"" → 確認Csv2Doc class="codetable" →リソース class="codetable" 

CSVファイルで””にすればうまくいきました!
ありがとうございます。

製作中は magic_quotes_gpc = Off
一通り作業終了後は magic_quotes_gpc = On に戻して運用します。
---------
おのうちみん
http://scifitique.org/
http://gender-sf.org/
アバター
yama
管理人
記事: 3251
登録日時: 2009年7月29日(水) 02:50

Re: Csv2Doc用のCSVファイルでcontent変数内の"の扱い

投稿記事 by yama »

もしかするとMODX本体のバグかも?
manager/includes/quotes_stripper.inc.phpをテキストエディタで開いて、
if(!get_magic_quotes_gpc()) return;
の次の行に
exit;
と記述して、サイトや管理画面が表示されるでしょうか?表示された場合は、ここに処理が渡ってないのでMODX本体のバグの可能性があります。
アバター
min-o
メンバー
メンバー
記事: 324
登録日時: 2009年10月07日(水) 18:32

Re: Csv2Doc用のCSVファイルでcontent変数内の"の扱い

投稿記事 by min-o »

manager/includes/quotes_stripper.inc.phpをテキストエディタで開いて、
if(!get_magic_quotes_gpc()) return;
の次の行に
exit;
やってみましたところ、
管理画面もサイトも問題なく表示されてます…。
---------
おのうちみん
http://scifitique.org/
http://gender-sf.org/
アバター
yama
管理人
記事: 3251
登録日時: 2009年7月29日(水) 02:50

Re: Csv2Doc用のCSVファイルでcontent変数内の"の扱い

投稿記事 by yama »

今度はif(!get_magic_quotes_gpc()) return;
の前の行に
exit;
を記述すると変化あるでしょうか?
何も変わらない場合は、exit;を書いたまま、
manager/includes/initialize.inc.phpの
if (version_compare(PHP_VERSION, '5.3.0') < 0) @set_magic_quotes_runtime(0);
この行を削除してみてください。
アバター
min-o
メンバー
メンバー
記事: 324
登録日時: 2009年10月07日(水) 18:32

Re: Csv2Doc用のCSVファイルでcontent変数内の"の扱い

投稿記事 by min-o »

if(!get_magic_quotes_gpc()) return;
の前の行に
exit;
変化なしです。
manager/includes/initialize.inc.phpの
if (version_compare(PHP_VERSION, '5.3.0') < 0) @set_magic_quotes_runtime(0);
この行を削除
//でコメントにしてアップしましたが、こちらも変化なしです。
---------
おのうちみん
http://scifitique.org/
http://gender-sf.org/
アバター
yama
管理人
記事: 3251
登録日時: 2009年7月29日(水) 02:50

Re: Csv2Doc用のCSVファイルでcontent変数内の"の扱い

投稿記事 by yama »

それではいったん元に戻して、manager/includes/initialize.inc.phpに
if (get_magic_quotes_gpc()) include_once "{$core_path}quotes_stripper.inc.php";
上記のような記述があると思います。これを
if (get_magic_quotes_gpc()) exit;
このように書き換えると変化あるでしょうか?(画面が真っ白になれば正しいです)
アバター
min-o
メンバー
メンバー
記事: 324
登録日時: 2009年10月07日(水) 18:32

Re: Csv2Doc用のCSVファイルでcontent変数内の"の扱い

投稿記事 by min-o »

manager/includes/initialize.inc.phpに
if (get_magic_quotes_gpc()) include_once "{$core_path}quotes_stripper.inc.php";
これを
if (get_magic_quotes_gpc()) exit;
このように書き換える
やってみましたが、やはり変化なく、普通に表示しています。
---------
おのうちみん
http://scifitique.org/
http://gender-sf.org/
アバター
yama
管理人
記事: 3251
登録日時: 2009年7月29日(水) 02:50

Re: Csv2Doc用のCSVファイルでcontent変数内の"の扱い

投稿記事 by yama »

なんだか変ですね。(とりあえずサーバ設定で問題なく動作するようですが)

コードを調べているうちにPHP5.4環境で発生するバグをメール送信まわりでひとつ見つけました。次回リリースに含めます
アバター
min-o
メンバー
メンバー
記事: 324
登録日時: 2009年10月07日(水) 18:32

Re: Csv2Doc用のCSVファイルでcontent変数内の"の扱い

投稿記事 by min-o »

了解しました。一旦元に戻しました。
おつかれさまでした。
---------
おのうちみん
http://scifitique.org/
http://gender-sf.org/
返信する