**[[質問箱4/83]] [#f2a967d0]
#author("2018-03-11T19:25:12+09:00;2007-10-03T23:27:10+09:00","","")
**[[質問箱/4083]] [#f2a967d0]
|RIGHT:70|LEFT:410|c
|~カテゴリ||
|~サマリ|全ファイルを一度に更新|
|~バージョン|1.4.7|
|~投稿者|[[ニヒー]]|
|~状態|質問|
|~投稿日|&new{2007-05-18 (金) 01:32:42};|
***質問 [#r30083a8]
全てのファイルを一気に更新する方法はありませんか?

たくさんのページにそのページへのリンクを埋め込みたくて、よくある[ [ & p a g e ; > & f p a g e ; ] ]このようなソースなのですが、regexp.inc.phpを使って& p a g e ;と& f p a g e ;を置換しようと思ったのですが、出来なかったです。[[質問箱4/87]]
たくさんのページにそのページへのリンクを埋め込みたくて、よくある[ [ & p a g e ; > & f p a g e ; ] ]このようなソースなのですが、regexp.inc.phpを使って& p a g e ;と& f p a g e ;を置換しようと思ったのですが、出来なかったです。[[質問箱/4087]]

それで、だったらFTPで全ファイルダウンロードしてローカルで置換してもう一回アップロードしなおせばいいかと思い、ためしに1ファイルやってみました。

ところが今度はまた別の現象で困っています、置換された& p a g e ;& f p a g e ;の文字はWIKI上で見たときに、ページ名に置き換わっているのですが、通常この様なソースは[ [ページ名 > パス/ページ名 ] ]と置き換わり、下のようなリンクとして働くはずなのです。
[[ページ名>パス/ページ名]]

ところが、ソースを見ると[ [ & p a g e ; > & f p a g e ; ] ]のままなのです。

そのせいか、リンクとして働かず[ [ページ名 > パス/ページ名 ] ]と表示されているのです。

そこで、そのページをいったん開きソースを一切触ることなく、ページの更新をすると、[ [ページ名 > パス/ページ名 ] ]と置き換わり、下のようなリンクとして働くようになるのです。
[[ページ名>パス/ページ名]]

これでは、置き換えたいページを一つ一つ1回ずつ開いて更新を押さなければいけません。
たくさんnページがあるので、大変です。

1度にページを全部更新できる裏技があれば、このローカル置換方法で出来るのですが。

同じ事で困っている人がいてもよさそうですが、検索したところ、過去に同じ質問は出ていなさそうです。

***回答 [#e15161be]
- teananさんの[[自作プラグイン/replace.inc.php>teanan:自作プラグイン/replace.inc.php]]を注意書きをよく読み納得した上で! --  &new{2007-05-18 (金) 08:59:36};
- 回答ありがとうございます。 そのプラグインを試してみたのですが、結局だめでした。 -- [[ニヒー]] &new{2007-05-19 (土) 12:59:13};
- 上の内容をわかりやすく書き直しました。 regexp.inc.phpとちがいreplace.inc.phpは文字自体の置換は出来たのですが、結局上の現象は起きてしまいます。 -- [[ニヒー]] &new{2007-05-19 (土) 13:01:14};
- 「現象」と書かれていることは仕様ではないでしょうか。PukiWiki上でページの更新が発生した際に件の置換が行われるわけで、ニヒーさんが挙げた例ではPukiWiki上でのページ更新は発生していないかのですから、当然です。「たくさんのページにそのページへのリンクを」付けたいなら、スキンを編集すればいいんじゃないですか?まぁ、この場合、厳密にページ本文ではないですが。また、ニヒーさんのやりたいことは簡単なPHPスクリプトでも可能でしょう。
--いい加減な例
 <?php
 foreach (glob('*.txt') as $fn) {
     $fpage = pack('H*', substr($fn,0,-4));
     $page = basename($fpage);
     $fc = file_get_contents($fn) .  "\n[[$page>$fpage]]\n";
     $fp = fopen($fn,'w');
     fwrite($fp, $fc);
     fclose($fp);
 }
 ?>
お試しの場合は、危険を理解した上、自己責任で。 --  &new{2007-05-19 (土) 21:00:00};
- これはどうやってつかうんですか? --  &new{2007-05-21 (月) 05:01:21};
- ページ更新が発生というのはつまり、page_write 関数が呼ばれたときではありませんでしたっけ?上のコードだと変換処理を行っている要素がないかと。 --  &new{2007-05-21 (月) 12:30:20};
- そもそも&#x26;fpage;や&#x26;page;の変換処理を使っていないので必要ありません。これはページデータファイルに直接&#x5b;[階層を除いたページ名>階層を含む完全なページ名]]を追加するものです。取り敢えず簡単にやる例として書いてみましたが、お使いになられない方が賢明でしょう。 --  &new{2007-05-21 (月) 21:55:09};

#comment

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Site admin: PukiWiki Development Team

PukiWiki 1.5.4+ © 2001-2022 PukiWiki Development Team. Powered by PHP 5.6.40-0+deb8u12. HTML convert time: 0.043 sec.

OSDN