2016-11-28 14 views
2

これはスーパーベーシックかもしれませんが、時間を費やしても解決できませんでした。モバイルで動作しない単純なPHPコード

私はUbuntu 16.1でPHP 7を実行しています。 >私は、デスクトップ上の "URL" をパラメータとして入力したURLを生成 -

<?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; 
} 

を次のように

PHPファイルは、正確です。しかし、モバイルでは何もありません!

ある読書で、私は時々PHPが「//」の後のすべてをコメントとして解釈していることを発見しました。しかし、それはなぜ携帯電話だけで起こるのですか?また、これを解決するためのANDYの提案は素晴らしいことでしょう!あなたの助けのために多くの

おかげで、

あなたがデスクトップ上でこれをクリックすると、あなたがHTTP表示されます。このライブhere

を見ることができます://例。 com。しかし、モバイルでは、http:

+3

phpはサーバー側で実行されています。無関係 –

+2

2番目のコードスニペットにはPHPエラーがあります。 '$ url'を定義した後にセミコロンがありません。さて、PHPはクライアントではなくサーバー上で実行されるので、クライアントがモバイル、タブレット、コンピュータなどであるかどうかは関係ありません。 –

+0

2番目のコードはPHPファイルの正確なコードですか? – Loko

答えて

1

が回答になるかどうかはわかりませんが、同様の問題に直面している可能性のある他の人にはここでメモしておきたいと思います。

私は上記のPHPをajax呼び出しに使用していました。私はapplication/jsonの代わりにtext/plainを使ってみましたが、今ではすべてのブラウザとすべてのデバイス(私がテストできる限り)で動作します。

application/javascriptがモバイルクロムで問題を引き起こしていた理由はわかりませんが、JavaScript/JavaScriptの代わりにテキスト文字列を返すだけでtext/plainが意味をなさないと思います。

私が言ったように、それはおそらく完全な答えではありませんが、うまくいけば将来的に誰かを助けるでしょう!

+0

あなたのスクリプトは 'http:// example.com'という文字列を生成し、それがJavascriptであるとふりをします。 '//'は[行末のコメント](https://developer.mozilla.org/en-US/docs/Learn/)を導入しているため、ブラウザは '//'とそれ以降のすべてを無視します。 Getting_started_with_the_web/JavaScript_basics#Comments)をJavascriptで作成します。おそらく、テキストがブラウザによってJavascriptとして使用されることは望ましくありません(これは有効なJavascriptではありません)。しかし、あなたはそれが悪い方向を与えた、それらを誤解してそれを非難しないでください。 'Content-Type:text/plain'が最適です。 PHPは有罪ではありません。 – axiac

+0

@axiac - 意味があります。非公式の問題は、Chromeブラウザのみで問題が発生していることですが、モバイルでも問題は解決していません。方向が間違っていると、すべてのブラウザとすべてのデバイスが同じように動作することを期待していたはずです。モバイル上のChromeブラウザ(とあまりにも、一部のバージョンのみ)は//後に何も無視します... – Roman

関連する問題