2016-11-28 1 views
2

이것은 매우 기본일지도 모르지만, 시간을 보내고 나서 해결할 수 없었습니다!모바일에서 작동하지 않는 간단한 PHP 코드

우분투 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가 "//"다음에 나오는 모든 것을 주석으로 해석하고 이것이 여기서 일어난다는 것을 알아 냈습니다. 그렇다면 모바일에서만 왜 그렇게됩니까? 또한이 문제를 해결하기위한 제안은 훌륭합니다! 당신의 도움을 많이

감사합니다,

당신이 당신이 바탕 화면에이를 클릭하면 볼 수 here

라이브 HTTP 볼 수 있습니다 : // 예. com. 그러나 모바일에서는 http :

+3

PHP가 서버 측에서 실행되므로 모바일이 가능합니까? 관련 없음 –

+2

두 번째 코드 단편에 PHP 오류가 있습니다. '$ url'을 정의한 후 세미콜론이 누락되었습니다. 그건 제외하고 PHP는 클라이언트가 아닌 서버에서 실행되므로 클라이언트가 모바일, 태블릿, 컴퓨터 등일 지 여부는 중요하지 않습니다. –

+0

두 번째 코드는 PHP 파일의 정확한 코드입니까? – Loko

답변

1

이 답변으로 제공되는지 확실하지 않지만 비슷한 문제에 직면 한 다른 사용자에게이 메모를 남기고 싶습니다.

저는 위에 작성한 PHP를 ajax 호출에 사용하고있었습니다. 나는 application/json 대신에 text/plain을 사용하려고 시도 했었고 이제는 모든 브라우저와 모든 장치에서 작동합니다 (테스트 할 수있는 한).

application/javascript가 모바일 크롬에서 문제를 일으키는 이유는 모르겠지만 자바 스크립트 대신 텍스트 문자열을 전달할 때 텍스트/일반 텍스트가 의미가 있다고 생각합니다.

내가 말했듯이, 아마도 완전한 답변은 아니지만 미래의 누군가가 도움이되기를 바랍니다.

+0

스크립트는'http : // example.com' 문자열을 생성하고 Javascript로 가장합니다. 브라우저는'//'과 그 이후의 모든 것을 무시합니다. 왜냐하면'//'은 [줄 끝말 주석] (https://developer.mozilla.org/en-US/docs/Learn/)을 소개하기 때문입니다. Getting_started_with_the_web/JavaScript_basics # Comments) 자바 스크립트. 브라우저에서 텍스트를 Javascript로 사용하고 싶지는 않을 것입니다 (JavaScript는 유효하지 않습니다). 그러나, 당신은 나쁜 방향을 제공, 오해 그들을 비난하지 마십시오. 'Content-Type : text/plain'이 가장 좋은 옵션입니다. PHP는 유죄가 아닙니다. – axiac

+0

@axiac - 의미가 있습니다. 평범한 것은 문제가 Chrome 브라우저에만 있었으며 모바일에서도 마찬가지였습니다. 방향이 올바르지 않으면 모든 브라우저와 모든 장치가 비슷하게 동작 할 것으로 기대했을 것입니다. 모바일에서 Chrome 브라우저 (및 그 버전도 일부 버전)는 // 이후에 아무 것도 무시합니다. – Roman

관련 문제