2015-03-18 2 views
0

Я использую DomDocument для изменения файла HTML, который сохраняется в новой папке.Как вставить переменную PHP в раздел javascript, используя DOMDocument?

Есть несколько переменных PHP, которые я добавляю в HTML-элементы, но мне нужно добавить некоторые переменные в раздел javascript.

Как я могу это достичь?

В качестве альтернативы, есть ли другой способ взять HTML-файл и вставить в него переменные PHP и сохранить результат? Может быть, супер базовый и легкий шаблонный движок? (Должно быть в состоянии прочитать HTML в памяти)

Пример HTML:

<html> 
    <body> 
     <script> 
     var my_array = new Array(); 
     </script> 
    <body> 
</html> 

Пример PHP:

$doc->DOMDocument(); 
$doc->loadHTML($html_from_file); 

// somehow need to target my_array; 

$doc->saveHTMLFile($filename); 
+0

У вас есть пример JavaScript? –

+0

См. Edit, например –

ответ

0

Вы можете просто создать тег сценария с PHP, например:

echo "<script>var blah = $blah;</script>"; 
+0

У меня уже есть тег скрипта внутри HTML, который содержит массив Мне нужно добавить мою переменную PHP (переменная PHP содержит строку) –

+0

Вы можете вставить PHP-переменные в JavaScript так же, как вы делать с HTML –

+0

Затем просто добавьте PHP-код в эту часть HTML. Вы можете в значительной степени разместить PHP где угодно на своей странице. –

1

Я не знаю, насколько хорошо я понимаю ваш вопрос, но в принципе вы можете получить доступ к скрипту t аги в DOM, как и любой другой тег, например:

$script = $doc->getElementsByTagName('script')->item(0) // if you want the first match 

Теперь вы можете извлекать и изменять, при необходимости, его содержания со свойством nodeValue.

+0

Он будет содержать довольно много кода, насколько легко его добавить в переменную в определенном месте? Думая об этом, я могу записать переменную в файл javascript и просто ссылаться на нее в html? –

+0

Содержание узла сценария - это просто текст, поэтому вам придется пройти через свойство nodeValue и проанализировать его с помощью регулярных выражений или тому подобного, а затем снова вернуть его на место. Нет инструмента DOM, который позволит вам это сделать. По крайней мере, насколько мне известно. –