【问题标题】:Simple PHP code not working on mobile简单的 PHP 代码无法在移动设备上运行
【发布时间】:2016-12-05 03:27:37
【问题描述】:

这可能是超级基本的,但我花了几个小时后无法解决这个问题!

我在 Ubuntu 16.1 上运行 PHP 7。

PHP 文件如下

  <?php

header("Content-type: application/javascript");
header("HTTP/1.1 200 OK");

ExpandShortLink();


function ExpandShortLink()
{

    // get URL
    $URL_To_Expand = $_REQUEST['url'];
    // for short links, get the full links

    // get full URL
    $arr_URL_Header = get_headers($URL_To_Expand, 1);
    $strLink        = $arr_URL_Header['Location'];

//echo $URL_To_Expand;
    //print_r($arr_URL_Header);

    if ($strLink) {
        if (is_array($strLink)) {
            $Full_URL = array_pop($strLink);
        } else {
            $Full_URL = $strLink;
        }
    } else {
        $Full_URL = $URL_To_Expand;
    }

    echo $Full_URL;
}

--> 生成我在桌面上作为“url”参数输入的 url。但在移动设备上什么都没有!

在一些阅读中,我发现有时 PHP 将“//”之后的所有内容解释为注释,这可能会发生在这里。但是为什么它只发生在手机上呢?此外,关于解决此问题的 Andy 建议也很棒!

非常感谢您的帮助,

你可以看到这个直播here

如果您在桌面上单击它,您将看到 http:// 示例。 com。但是,在移动设备上它会返回 http:

【问题讨论】:

  • php 在服务器端运行 - 如此移动?无关的
  • 第二个代码sn -p 有PHP错误;定义$url 后缺少分号。除此之外,PHP 是在服务器上运行的,而不是在客户端上运行的,所以客户端是移动设备、平板电脑、计算机等都没有关系。
  • 你确定第二段代码就是你的php文件的确切代码吗?
  • @Dragon - 是的,我知道。这就是为什么我从不费心检查它的原因。现在我只是认为来自移动设备的 ajax 调用不起作用.. 所以我深入挖掘并直接调用 PHP.. 它不应该依赖于设备,但不知何故它是。我很困惑!
  • 小信息继续,祝你好运

标签: php


【解决方案1】:

不确定这是否有资格作为答案,但我想在这里为可能面临类似问题的其他人做个说明。

我使用上面粘贴的 PHP 进行 ajax 调用。我尝试使用 text/plain 而不是 application/json,现在它适用于所有浏览器和所有设备(据我测试)。

不知道为什么 application/javascript 会导致移动 chrome 出现问题,但我认为 text/plain 是有道理的,因为我只是传回了一个文本字符串而不是 javascript。

正如我所说,这可能不是完全合格的答案,但希望它对未来的人有所帮助!

【讨论】:

  • 您的脚本生成字符串http://example.com 并假装它是Javascript。浏览器会忽略// 及其之后的所有内容,直到行尾,因为// 在Javascript 中引入了end-of-line comment。您可能不希望浏览器将文本用作 Javascript(它不是有效的 Javascript);但是,您为它提供了错误的指示,不要怪它误解了它们。 Content-Type: text/plain 是这里的最佳选择。 PHP 是无罪的。
  • @axiac - 有道理。尽管不寻常的是问题仅出在 Chrome 浏览器上,而且也仅出在移动设备上。如果方向不正确,我会期望所有浏览器和所有设备的行为都相似.. 显然移动设备上的 Chrome 浏览器(也是如此,只有某些版本)忽略 //... 之后的任何内容
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-30
  • 2017-01-28
  • 2016-08-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多