• 締切済み

PHPで2つのテキストをマージする方法

PHP5において、二つのテキストをマージする方法を探しています。 フリーウェアとして公開することを考えているので、PECLやPEARに依存しない手段を使って解決したいです。 出来るだけ簡単な方法を伝授願います。

みんなの回答

  • ts3m-ickw
  • ベストアンサー率43% (1248/2897)
回答No.2

よく判りませんが、差分があるのならpatchコマンドを実行するように組めば楽なのではないでしょうか?

Yumill
質問者

お礼

回答ありがとうございます。まだちょっと言葉が足りていませんでしたね。 私が考えているのは、あるWikiのページXがあり、Aが編集したテキストとBが編集したテキストをマージする方法です。

全文を見る
すると、全ての回答が全文表示されます。
  • ts3m-ickw
  • ベストアンサー率43% (1248/2897)
回答No.1

動作確認してないけど、テキストBの後ろにテキストAを追加するのでいいなら、こんな感じでできるんじゃない? <?php $ta=fopen ("テキストA","r"); $tb=fopen ("テキストB","a"); while (!feof ($ta)) fputs($tb,fgets ($ta, 800)); fclose ($ta); fclose ($tb); ?> マージして第三のファイルを作るのなら、もちっと手を入れてくださいな。

Yumill
質問者

お礼

回答ありがとうございます。ちょっとこちらの書き方が悪かったようです。 私が言いたかったのはwikiなどに搭載されている更新の差分を吸収してくれるような動作です。

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

関連するQ&A

  • PHPで、OSに依存せずにテキストの差分を取得する方法を探しています。

    PHPで、OSに依存せずにテキストの差分を取得する方法を探しています。 現在作成しているウィキ(配布用)に搭載するために探しています。 PEARは、スクリプトを不特定多数が利用するので、可能な限りインストールしない方向で考えています。 理想の表示はMediaWikiのそれです。でも、実装方法が分かりません。 何か良い手段は無いでしょうか。

    • ベストアンサー
    • PHP
  • phpを高速化するためにAPC(Alternatice PHP Cac

    phpを高速化するためにAPC(Alternatice PHP Cache)をインストールしたのですが、事情によりアンインストールすることになりました。 APCをインストールする際に下記もいっしょに入れた記憶があるのですが php-pear、php-devel、httpd-devel、gcc、gcc-c++ これらをすべて削除するにはどのようにしたらいいのでしょうか。 #pecl uninstall APC #uninstall php-pear #uninstall php-devel このような感じでいいのでしょうか?

  • phpのxdebugを入れたい

    さくらのインターネット共有サーバのビジネスを使っています。 (FreeBSD,cshです) で、phpのxdebugを入れたいと考えています。 % pecl とだけコマンドをうつとusage一覧が出てくるので、 peclコマンドを使えると思ったのですが、 % pecl install xdebug Cannot install, php_dir for channel "pecl.php.net" is not writeable by the current user % pecl config-get php_dir /usr/local/php/5.4/lib/php % sudo chown 31com /usr/local/php/5.4/lib/php /usr/local/bin/sudo: パーミッションが拒絶されました. とでるので、peclコマンドは一切使えないと考えていいのでしょうか? あるいは、pecl以外でxdebugを入れる方法はありますか? どこかで、さくらだと(xdebugにかぎらず)ソースからコンパイルしてインストールすればできる、と聞いたことがあるのですが、環境設定(cshです)の方法(必要?)など手順がわかりません。 よろしくお願いします

    • ベストアンサー
    • PHP
  • PHP、Mysqlを独学でなんとか使えるようになってきた50代の素人で

    PHP、Mysqlを独学でなんとか使えるようになってきた50代の素人です。PHPの勉強をして2年になります。まだまだ勉強しなければいけないことが山ほどあるのですが、今はストアドプロシージャについて説明している良書を探しています。WEBで調べたり、本屋さんで調べたりしていますが、お勧めの本がありましたら紹介していただければ幸いです。 また、もしPECLについて書いてある本もありましたら紹介していただければと思います。 PEARについての本はありましたが、PECLについての本は見つけることができませんでした。 本とWEBに頼るしかない現状です。よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • svnでマージ中止後からマージできない

    trunkフォルダ内のsoftwareというフォルダ内でcpp builder2009で作成のプロジェクトファイルで作業をしているのですが、修正などの編集を行いたくなり、softwareのフォルダをtortoise svnのブランチ機能で/branch/20140722_softwareというフォルダでブランチして、修正作業はこのフォルダ内で行いました。 一通り修正作業が完了したので、/trunk/software/のフォルダ内にマージ機能を使って見ようと思いました。 とりあえず現在の/branch/20140722_software/内で変更のあったソースコード関連のテキストファイル関連のファイルを/trunk/software/フォルダ内にマージをしたかったのですが、dfmという拡張子のファイルでconfrictが起こったようで、Abort mergeでマージを中止させました。 そして、競合があったファイルをResolveというのを/trunk/software/に行って、再度マージを行おうとするとマージが完了しているという内容が出てきました。 /branch/20140722_software/の最新リビジョン /trunk/software/の最新リビジョン この2つのフォルダをDFという比較閲覧ソフトで確認してみたところ、/branch/20140722_software/で変更をかけたソースコードのテキストファイルは/trunk/software/フォルダ内にはコピーされていない状態でした。 tortoise svnのマージの操作方法はこちらのサイトを参考にして実施しました。 http://hide.xsv.info/tips/svnmanual/merge1/ マージの種類としては”リビジョン範囲のマージ”というのを使用しました。 また、”マージするリビジョンの範囲(specific range)”というのはshow log機能で、/branch/20140722_software/が作成されたrev128から最後の修正までのrev168までを指定しました。 Merge depth:というのはWorking copyを洗濯 Compare whitespaces という機能ボタンをONにしてマージをしました。 なお、現在/trunk/software/の最新リビジョンで、/branch/20140722_software/の最新リビジョンからのファイルでマージしようとしても、できない状態なのですが、 ”マージするリビジョンの範囲(specific range)” この時の設定で”URL to merge from”で設定している/branch/20140722_software/フォルダのshowlogを見ると、 Actions:Modified Already merged とすべての変更があったリビジョンに表示されています。 たぶんですが、/trunk/software/フォルダは/branch/20140722_software/の内容を既にマージしているということになっているようなのですが、これを取り消す方法などをありますでしょうか? また、このようなマージ機能の使用方法として適切な方法などご教示頂きまうよう、よろしくお願い致します。

  • 配列のマージについて

    配列のキーを保ったまま配列をマージしたいのですが、phpのリファレンス(http://www.php.net/manual/ja/function.array-merge.php)にある通り'+' 演算子を使うと、以下のエラーが出ます。 Fatal error: Unsupported operand types コードは以下の通りです: $values['taxonomy']=$values['taxonomy'] + $t_arr; 問題なくマージできれば、以下のようになります: Array ( [taxonomy] => Array ( [tags] => Array ( [1] => , IFIs general, Alternatives to the IFIs, Civil Society, International ) ) [2] => 342 ) (分かりにくいですが、['taxonomy']と[2]が同じ階層にあります) 理解に苦しむのは、処理するデータ量が少ない(20配列程度)ときにはこのエラーが起きずに配列がマージできるのですが、データ量が多くなるとエラーが起きるようなのです。(要因は他にあるのかもしれませんが、今のところデータ量以外に要因らしきものは見あたりません。個人的にはデータ量が要因というのは考えにくいとは思っています) 原因・解決法などご存じでしたらお教えいただけると幸いです。 (環境:PHP 5.2.4, Apache 2, Debian Sarge)

    • 締切済み
    • PHP
  • VineLinux3.0でのPHP導入(訂正)

    こんばんわ。 この度PHPを導入しようと思い、以下のコマンドを打ってみましたが # apt-get install php php-devel php-pear php-apache php-imap php-mysql 以下のエラーが出てきてインストールができません。 -- パッケージリストを読みこんでいます... 完了 依存情報ツリーを作成しています... 完了 いくつかのパッケージをインストールすることができません。おそらく、 ありえない状況を要求したか、(必要なパッケージがまだそろっていなかっ たり、まだIncomingから移動されていない)不安定なディストリビューション を使用していないでしょうか。 以下の情報がこの問題を解決するために役立つかもしれません: 以下のパッケージは解決できない依存関係を持っています: php: 依存: libdb-4.2.so php-apache: 依存: libdb-4.2.so E: 壊れたパッケージです -- 正常にインストールしたい時はどうすればいいでしょうか。 ご指導お願いいたします。

  • PHP初心者です。pearの具体的な使用方法

    本当に素人なので変な質問かもしれません。 現在ロリポップでpearをインストールしたのですが、具体的なpearの使用方法というのは リモートサーバのインストールした場所でpearのフォルダの中からPHPファイルをみてコピペでコードを作成していくのでしょうか?  ただ今の時点でインストールしたpearのphpファイルどれをブラウザで開いてもエラーがでて、それぞれのphpファイルの機能がどういうものかもわかりません。この時点でpearの使用方法が間違っているのかもしれませんが、ネットで調べてもインストールする手順ぐらいしか見ることができずに困っています。  pearの活用例とpearのファイルがどれもエラーである理由を教えてください。 ちなみにエラーは Fatal error: No PEAR.php in supplied PEAR directory: @pear_dir@ in /home/users/0/xxxxx/web/pear/TMP1q84zbu.php on line 24 こんな感じです。

    • 締切済み
    • PHP
  • PHPで作られたフリーウェアのプログラムを探しています。

    PHPで作られたフリーウェアのプログラムを探しています。公開しているサイト等を教えて頂けないでしょうか。

    • ベストアンサー
    • PHP
  • phpにてjsonの利用ができなくなりました

    phpにてjsonの利用ができなくなりました yum phpインストール後 peclにてjsonをインストールし動いておりました。 ある時点よりPHPのjsonのエラーが出るようになり、プログラムが動かなくなりました。 解決方法わかる方いらっしゃいましたら、ご教授お願い致します。 エラー: PHP Fatal error: Call to undefined function json_encode() やってみたこと:  yum php やphp-devel、pecl でjsonを入れなおしたり、  php.ini php.d/json.ini を記述してみたり、  jsonのtar.gzを落としてコンパイルしておいてみたり  としたのですが、動きません. その他状況: ・php -m にてjsonが表示されますが ・phpinfo()ではjsonの項目が表示されません 怪しい点: 利用できなくなった前後で yum update で全てのアップデートを行っています。 よろしくお願いいたします。

    • 締切済み
    • PHP
EP-805AW PDF印刷ができない
このQ&Aのポイント
  • EP-805AWのPDF印刷ができない問題について
  • 通常の印刷は問題なくできるが、PDFファイルの印刷だけができない
  • 最新のプリンタドライバを使用しているにもかかわらず、PDFの印刷マークをクリックしても変化がない
回答を見る

専門家に質問してみよう