file_get_contents PHP未捕获的SyntaxError:无效或意外的令牌

时间:2018-09-30 22:44:54

标签: javascript php

当我尝试让我们使用file_get_contents时,它会向我显示此错误

我做错了什么?

我不能这样做:

<?php
function getWeather_PHP($location) {
  $l_location = (string)$location;
  $url = "http://api.openweathermap.org/data/2.5/weather?".$l_location."&lang=en&units=metric&appid=MY_API_KEY";
  $url = (string)$url;
  $contents = file_get_contents($url); //error occur here
  ...
  return weather_data;
?>

在同一php文件中的脚本中

<script>

    var inputString  = "PLACE_LOCATION"

    var php_result = "<?php
                       $php_inputString = '"+inputString+"';
                       echo getWeather_PHP($php_inputString);
                      ?>";
</script>

错误是: enter image description here

我收到的另一个错误报告是 警告:file_get_contents(“ + this_url +”):无法打开流: /opt/lampp/htdocs/Index.php 中没有此类文件或目录50

1 个答案:

答案 0 :(得分:0)

var php_result = "<?php
                   $php_inputString = '"+inputString+"';
                   echo getWeather_PHP($php_inputString);
                  ?>";

早在Javascript运行之前,就已经在服务器上评估了PHP。 PHP解释器直接输出<?php … ?>标记之外的所有内容,而无需以任何方式对其进行解释。

从PHP的角度来看,$php_inputstring设置为文字文本"+inputString+"。这导致getWeather_PHP()试图获取城市"+inputString+"的天气,但失败了。

如果需要getWeather_PHP()函数可从Javascript调用,则需要将其公开为单独的AJAX端点。您无法以这种方式使Javascript和PHP互通。