バージョンアップ: 習作:MT形式のd3blogインポート

  • このフォーラムはコメント用フォーラムです。新規トピックはたてられません
  • このフォーラムではゲスト投稿が許可されています
対象モジュール なーお'n研究室
件名 習作:MT形式のd3blogインポート
要旨 ページ内コンテンツ Movable Type形式の d3blogインポート 1、参考: MovableTypeのデータをWordPressに移行したい。(のぶのぶXOOPS) 2、d3blogインポートの制約 3、インポー...

投稿ツリー

トピック


前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2009/4/14 14:27 | 最終変更
なーお  長老   投稿数: 1784

MT形式ブログデータのd3blogインポートスクリプトをバージョンアップしました。 今回、コメントのd3forumコメント統合への直接インポートが可能になっています。

 スクリプトバージョンver0.3以前では ゲスト名が引き継げないxoopsコメント経由で取り込んでいたため、本文の冒頭にゲスト名を追記する形で対処していました。 今回、直接取り込むようにしたことで ゲスト名も有効にインポートされます。

 また、ver0.3以前で既に取り込み済みの統合コメントも、インポートファイル内のゲスト名と本文で上書きも可能になっています。 必要に応じてご活用下さい。 :-)

投票数:0 平均点:0.00
返信する
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2009/4/15 11:58
八郎 

はじめまして!
FC2のMTブログデータをd3にインポートする手立てはないものかと検索していて
こちらの記事にたどり着きました。
行き詰まってしまったので、解決へのヒントを頂ければと少々質問させて頂きます。

fc2のデータ1000記事分×1、手順通りに記述したrootとtrust側それぞれのimport.php
を用意した上で
xoops_root_path/modules/d3blog(hoge)/import.php
にアクセスしてみましたところ、何も表示されませんでした。
そのソースを見るとIEではbody内が空のhtml構文、firefoxでは白紙でした…(´ヘ`;)
d3blogのディレクトリ名をhoge等に変更して複数インストールしているので
そこに問題があるのかな?などと思ったりもしたのですが…。
import.phpにアクセスするのに、メモリ不足で真っ白になるってことは無いですよね。
管理者権限を付加したユーザーでimport.phpにアクセスしております。
やはり、PHPのバージョンの問題なのでしょうか?

当方環境:
PHP5.1.6
XCL 2.1

以上、よろしくお願いします。

投票数:0 平均点:0.00
返信する
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2009/4/15 13:18 | 最終変更
なーお  長老   投稿数: 1784

八郎さん、こんにちは。

引用:
fc2のデータ1000記事分×1、手順通りに記述したrootとtrust側それぞれのimport.php
を用意した上で
xoops_root_path/modules/d3blog(hoge)/import.php
にアクセスしてみましたところ、何も表示されませんでした。
そのソースを見るとIEではbody内が空のhtml構文、firefoxでは白紙でした…(´ヘ`;)
d3blogのディレクトリ名をhoge等に変更して複数インストールしているので
そこに問題があるのかな?などと思ったりもしたのですが…。
import.phpにアクセスするのに、メモリ不足で真っ白になるってことは無いですよね。

mainfile.phpやヘッダー、フッター、d3blogのソースをrequireしていますが、最初のアクセスで真っ白なのは、あまり考えられないですねえ。
私の環境でもhtml側のディレクトリ名も変更して複数設置してますが、問題ありません。

PHPデバグモードにしても、何も表示されないのでしょうか?

投票数:0 平均点:0.00
返信する
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2009/5/2 5:04
八郎 

ご返信遅れまして申し訳ございません。
あれから色々と試してみたのですが、なかなか実行ボタンの表示までこぎつけません。
これだけ手間取って単なるファイルの配置場所ミスとかでしたらお恥ずかしい限りです…(^_^;)
なーおさま、ご回答ありがとうございます(^_^)

以下、試してみたことなどを少々書かせて頂きます。
1、「デバックモード、常時オン」です。import.phpアクセスで何も表示されません(^_^;)
2、「trust側import.phpのパスの記述を間違えている可能性」も考えたのですが、当該部位にURLを記述した上で実行してエラーになったとの書き込みがこのスレッドに報告されておりましたので、フルパスの記述ミスというのは”import.phpにアクセスで真っ白”には関係無いように思います。
3、「/d3blog/を/hoge/に変更している」ので、ソース内のd3blogという文字列の書き換えが必要なのかも…。と、import.phpのソースと散々にらめっこしたのですが、素人目にも変更が必要とは思えませんでした(-_-;)
4、「URL(/modules/)短縮ハック」。これも、当該ブログのURLには適用していないので関係ないように思うのですが…。mainfile.phpの短縮ハックの記述を完全コメントアウトした状態でアクセスを試したわけではないので、実際どうなるかはわかりません。
5、「c_templateも何度か全消し」してアクセスしてみましたが、関係ないようでした(-_-;)
6、「xoops_trust_path/../../hoge.txtは1200記事以上あるファイル」なのでmainfile.phpにアクセスした瞬間から当該ファイルを裏で読み込むような動作をするとしたら、もしかしたらメモリ不足に?これはもう空想ですw
7、「バージョン0.4でも変化なし」でした。
8、単なる誤読の可能性(;・∀・)

今のところ、上記4を実際に試してダメなようでしたらPHPのバージョンの問題と思い、諦めるしか無いように思っています。
それと、悪戯心で(1)と(3)のimport.phpのファイル配置場所を逆にしてアクセスしてみたくて仕方ありません。なぜ、フォームの記述がある方がtrust側になって、フォームの記述がないほうがroot側の直接アクセス先になるんだろうという疑問が…。ただ、余計なことをして、もしも障害がでてしまったら自己解決できるレベルの物ではないので出来ませんが(^_^;)

試したら、また書き込ませて頂きますね。

投票数:0 平均点:0.00
返信する
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2009/5/2 8:26 | 最終変更
なーお  長老   投稿数: 1784

八郎さん、こんにちは。

  • どうも4、の「URL短縮ハック」は気になりますが、いずれにしても問題を切り分けたいので、現状のtrust側のスクリプトを、試しに以下のように単純化したメッセージのみに書き換えてみていただけますか。
    1
    2
    3
    
    <?php
    echo("trust_path is OK");
    ?>
    これでこの文字が表示されれば、trust側のスクリプト内の問題を探せばよいことになります。
  • また、「URL短縮ハック」の中身を開示いただけませんでしょうか。
  • 6、の件は、アクセスした段階ではファイルは読み込みませんので、これは違いますね。。
    引用:
    なぜ、フォームの記述がある方がtrust側になって、フォームの記述がないほうがroot側の直接アクセス先になるんだろうという疑問が…。

という件については、trust側のスクリプトはroot側のスクリプトでrequireされているため、root側で実行されているのと同じ扱いになります。 (スクリプト内には潜在的な問題は潜んでいるかもしれません。)

  • ひとつ可能性を見つけました。
    trust側のスクリプトの、最初の
    1
    
    require '../../mainfile.php' ;
    この行はroot側で読み込まれていますので、だぶってFATALエラーになっている可能性があります。 この行をコメントアウトしてみていただけますか。 ;-)
投票数:0 平均点:0.00
返信する
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2009/5/2 19:08
八郎 

おおおおお!!trust_path is OK!表示されました。嬉しい!
なーおさま、こんばんは!

質問になっていないような質問に色々とお答え頂きありがとうございます(^_^;)

これはもう、4で決まりですよね?
もちろん、短縮ハックのコードを自前で用意など出来るはずもなく、
WEBで公開されているものを使わせていただいているのですが
一応、ソースは以下のようになっています。

投票数:0 平均点:0.00
返信する
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2009/5/2 19:35 | 最終変更
八郎 

すみません。どうやっても上手くソースが貼り付けられなかったので
取り急ぎキャプチャーしてみました(^_^;)
filehttp://blog-imgs-40.fc2.com/s/a/i/sainaraa/87_20090502192433.jpg

お教え頂いたtrust側のコメントアウト、今から挑戦してみます!

投票数:0 平均点:0.00
返信する
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2009/5/2 20:21 | 最終変更
なーお  長老   投稿数: 1784

八郎さん、こんばんは。

引用:
これはもう、4で決まりですよね?

いえ、trust側のスクリプトの問題の可能性が高くなりました。

スクリプトが正しくダウンロードできていないのではないか、という心配もありますので、以下にzipファイルにした ver0.3とver0.4のファイルを貼っておきます。 今までと同様に、必要箇所の編集をしてからアップして下さい。

  • [添付]
  • [添付]
投票数:0 平均点:0.00
返信する
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2009/5/4 23:53
八郎 

なーおさま、ありがとうございました!
仰られたとおり、どうやらソースファイルのダウンロード失敗が原因だったようです ;(
(失敗?したときの手順は、リンク先にジャンプしてソースを全選択コピー、新規テキストファイルを作成してそこにペーストでした。)

0.3zipと0.4zipを試してみましたが、mainfile.php内のURL短縮ハックをコメントアウトしないままの状態で、双方ともでフォームを表示することが出来ました(^_^;)。

そこでさっそく「実行」してみたのですが、やはり1200件を一度にというわけには行かないようで…。再び真っ白になりました(笑)
ところが、ブログを覗いてみると不思議なことに1?104番目までの記事が :-o
そこで、100件ずつ分割してトライすればイケるだろうと考え、その結果なんとか370件まで完了しました。この先はメモリー不足なせいか、xxx.txtの記事数を50まで減らして実行を押しても完全な真っ白状態でインポートも全く進行しなくなりました。(思えばエントリーのタイトルにa hrefタグを入れたり、無茶苦茶やっていたので仕方ない気もします) :oops:
でも、これだけインポートが出来てしまえば私としましては大満足なので、一応最後にWarningが出ておりましたことだけご報告させて頂きます。
filehttp://blog-imgs-40.fc2.com/s/a/i/sainaraa/88_20090504233835.jpg
この度は素晴らしいソースとご指導を頂き本当にありがとうございました。

と、言いつつもう一度だけ見に参ります(・∀・)

投票数:0 平均点:0.00
返信する
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2009/5/5 10:26 | 最終変更
なーお  長老   投稿数: 1784

八郎さん、こんにちは。

そうですか、スクリプト自体は大丈夫だったようですね。
もっと早く気づくべきでした。 :-(
これを機会に、zipファイルでダウンロードする方法に変更しました。

ところで、370件めから先がインポートできないとのことですが、確かにメモリリミットに引っかかりやすいので、あり得ますね。

一時的にメモリリミットを変更するか、、

それから、もしかすると記事のほうに問題があったり相性が悪い場合は、提示いただいた画像のようなNoticeが出る場合があった気がします。 その記事の100件なり50件なりを飛ばして、次の塊のファイルを実行するとインポートできたりするかもしれません。

あとは、TMさんの使ったこの方法
http://www.naaon.com/modules/d3forum/index.php?topic_id=210#post_id666
を試してみるかですね。 PHPMyadminを使う必要がありますし、コメントの紐付けが少し心配ですが。。

(追記)
なお、当分先になると思いますが、カスタムテンプレートを使った方法に変更し、内容も見直したいと考えています。 その際に、メモリ不足を回避するような実装もできたらいいなと思っています。 具体的には、ファイルを一度にメモリ読み込まず、1行ずつスキャンしていく方法です。 その上で、取り込み記事数を(例えば50件づつなど)指定して、その件数分づつメモリに取り込んでインポートし、次の50件に移るという方法です。

投票数:0 平均点:0.00
返信する

このトピックに投稿する

題名
ゲスト名
投稿本文
  条件検索へ