質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

EC-CUBE

EC-CUBEは、主に日本国内で開発されているECコンテンツ管理システムです。ロックオン社のECKitを元にしてオープンソース化され、商品管理・受注管理・顧客管理・売上集計などECに特化した様々な機能を備えています。

Q&A

1回答

1983閲覧

PHPでHTML内の置換をしたい

kyle_reesse

総合スコア6

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

EC-CUBE

EC-CUBEは、主に日本国内で開発されているECコンテンツ管理システムです。ロックオン社のECKitを元にしてオープンソース化され、商品管理・受注管理・顧客管理・売上集計などECに特化した様々な機能を備えています。

0グッド

1クリップ

投稿2018/08/27 03:35

編集2018/08/27 03:45

DOMDocumentを使用してdiv内を置換したいです。

Ec-cubeのホームページで置換をしたいです。
理想の動作としては、HTML内に<div class="hoge">1</div>があったときに、以下のソースで置換したいです。

php

1use DOMDocument; 2use DOMXpath; 3 4$dom=new DOMDocument(); 5@$dom->loadHTML($html); 6$xpath=new DOMXpath($dom); 7$nodes=$xpath->query('//div[@class="hoge"]'); 8//置換処理 9for ($i = 0; $i < $nodes->length; ++$i) { 10 $node = $nodes->item($i); 11 $newHtml=$something; 12 $node->nodeValue=null; 13 $node->appendChild($newHtml); 14 }

問題は$nodes as $nodeのときに$nodeがDOMNodeではなく、DOMElementになってしまって、置換ができないことです。

試した解決策

ノードを生成して追加しようと思いましたが、それじゃ置換にならないなと気づきました。

質問

div内置換の代替案、もしくは上記の現象になる原因を教えてください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2018/08/27 03:44

3系なら普通に公式開発マニュアルに記載されてるよ。フックポイント
退会済みユーザー

退会済みユーザー

2018/08/27 03:50

そもそも DOMNode の拡張クラスである DOMElement になったら置換できない理由にはならない気がするが
kyle_reesse

2018/08/27 05:32 編集

回答ありがとうございます。DOMElementは読み込みだけで、置換はできないことをStackoverFlowで見かけました。前回Stackoverflowで見つけて、URLを張ろうとしましたが、見つかりませんでした。Ec-cubeの話ですが、確認ですが、Crawlerを使うやつですか?
kyle_reesse

2018/08/27 06:39

ありがとうございます。
guest

回答1

0

【質問】
ブラウザ上に表示された内容を置換したいて事ではないですか?
(現在表示されている内容をサーバーで変える事て出来ないですよね―――)

投稿2018/08/29 10:01

tonkun4os

総合スコア321

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問