質問編集履歴

5

タイトル更新

2017/11/28 09:47

投稿

退会済みユーザー
test CHANGED
@@ -1 +1 @@
1
- 【laravel】javascriptファイルにPHPの変数を渡す方法
1
+ 【laravel】javascriptファイルにPHPの変数を渡す方法 ※特殊ケースです
test CHANGED
File without changes

4

修正

2017/11/28 09:47

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -162,21 +162,9 @@
162
162
 
163
163
  $fileContent = str_replace('&', '&', $fileContent);
164
164
 
165
- $config = array(
165
+
166
-
167
- // 'drop-empty-elements' => false, // 空の要素を削除しない
166
+
168
-
169
- 'hide-comments' => true, // コメントを削除
167
+
170
-
171
- 'output-xhtml' => true, // xhtml に変換
172
-
173
- );
174
-
175
-
176
-
177
- $tidy->parseString($fileContent, $config, 'utf8');
178
-
179
- $tidy->cleanRepair();
180
168
 
181
169
  $xml = simplexml_load_string($tidy);
182
170
 

3

追記②

2017/11/28 09:25

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -140,6 +140,116 @@
140
140
 
141
141
 
142
142
 
143
+ ##追記②
144
+
145
+ jsにphpの変数を渡せなかったのは、私のコードが下記のようになっていたからでした。
146
+
147
+ ```php
148
+
149
+ <?php
150
+
151
+ $project = 'aaaa';
152
+
153
+
154
+
155
+ $uu = exec('C:\X_DRIVE\asp\home\laravel\vendor\bin\phantomjs.exe C:\X_DRIVE\asp\home\laravel\public\js\jump.js');dd($uu);
156
+
157
+ // 取得したhtmlをkaigokensaku.blade.phpに出力・取得
158
+
159
+ $file = 'C:\X_DRIVE\asp\home\laravel\resources\kaigokensaku.blade.php';
160
+
161
+ $fileContent = file_get_contents($file);
162
+
163
+ $fileContent = str_replace('&', '&amp;', $fileContent);
164
+
165
+ $config = array(
166
+
167
+ // 'drop-empty-elements' => false, // 空の要素を削除しない
168
+
169
+ 'hide-comments' => true, // コメントを削除
170
+
171
+ 'output-xhtml' => true, // xhtml に変換
172
+
173
+ );
174
+
175
+
176
+
177
+ $tidy->parseString($fileContent, $config, 'utf8');
178
+
179
+ $tidy->cleanRepair();
180
+
181
+ $xml = simplexml_load_string($tidy);
182
+
183
+ ?>
184
+
185
+ ```
186
+
187
+ そこで下記のように変更を加えてみました。
188
+
189
+ ```php
190
+
191
+ $project = 'aaaaa';
192
+
193
+ ?>
194
+
195
+ <script>
196
+
197
+ var url = <?php echo $project;?>;
198
+
199
+ </script>
200
+
201
+ <?php
202
+
203
+ exec('C:\X_DRIVE\asp\home\laravel\vendor\bin\phantomjs.exe C:\X_DRIVE\asp\home\laravel\public\js\jump.js');
204
+
205
+ ```
206
+
207
+ しかし、このようにした結果、今度はjump.jsファイルにて処理がうまく走らなくなりました。
208
+
209
+
210
+
211
+ ```javascript
212
+
213
+ var page = require('webpage').create();
214
+
215
+ var fs = require('fs');
216
+
217
+ page.open(url, function(status) {
218
+
219
+ if (status === 'success') {
220
+
221
+ page.switchToFrame(0);
222
+
223
+ // HTML を書き出し
224
+
225
+ var html = page.evaluate(function() {
226
+
227
+ return document.getElementsByClassName('contents')[0].innerHTML;
228
+
229
+ });
230
+
231
+ fs.write('resources\kaigokensaku.blade.php', html, 'w');
232
+
233
+ }
234
+
235
+ // exit しないと終了しない
236
+
237
+ phantom.exit();
238
+
239
+ });
240
+
241
+
242
+
243
+ ```
244
+
245
+ 上記のjsファイルにてurlを参照し、そのページのhtmlをローカルのblade.phpファイルに出力する構造になっています。
246
+
247
+
248
+
249
+ ご助力いただけないでしょうか。
250
+
251
+
252
+
143
253
 
144
254
 
145
255
  何卒よろしくお願いいたします。

2

追記①

2017/11/28 09:21

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -72,4 +72,74 @@
72
72
 
73
73
 
74
74
 
75
+ ##追記①
76
+
77
+ phpファイル
78
+
79
+ ```
80
+
81
+ <?php
82
+
83
+ $project = 'aaaa';
84
+
85
+ ?>
86
+
87
+ <script type="text/javascript" src="jump.php"></script>
88
+
89
+ ```
90
+
91
+ jsファイル
92
+
93
+ ```
94
+
95
+ console.log('Hello, world!');
96
+
97
+ var page = require('webpage').create();
98
+
99
+ var fs = require('fs');
100
+
101
+ var url = "<?php echo $project; ?>";console.log(url);
102
+
103
+ page.open(url, function(status) {
104
+
105
+ if (status === 'success') {
106
+
107
+ page.switchToFrame(0);
108
+
109
+ // HTML を書き出し
110
+
111
+ var html = page.evaluate(function() {
112
+
113
+ return document.getElementsByClassName('contents')[0].innerHTML;
114
+
115
+ });
116
+
117
+ fs.write('resources\kaigokensaku.blade.php', html, 'w');
118
+
119
+ }
120
+
121
+ // exit しないと終了しない
122
+
123
+ phantom.exit();
124
+
125
+ });
126
+
127
+
128
+
129
+ ```
130
+
131
+ 上記のjsファイルで「console.log(url);」をかけて出力を確認したところ、
132
+
133
+
134
+
135
+ 「string() "<?php echo $project; ?>"」
136
+
137
+
138
+
139
+ が出力されました。
140
+
141
+
142
+
143
+
144
+
75
145
  何卒よろしくお願いいたします。

1

修正

2017/11/27 13:33

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -42,7 +42,7 @@
42
42
 
43
43
  ```
44
44
 
45
- ↑のパターンでは、そもそもphpファイル内、「<?php echo $projectListUrl;?>」にてundefinedのエラーが発生しています。
45
+ ↑のパターンでは、そもそもphpファイル内、「<?php echo $project;?>」にてundefinedのエラーが発生しています。
46
46
 
47
47
 
48
48