2014-01-06 1 views
0

몇 가지 이유 때문에 다른 포함 페이지에서 페이지 헤드 섹션을 설정해야합니다. 아래 inc.php 페이지에서 먼저보기 :javascript를 함수 매개 변수로 넣는 방법

page: inc.php 
<?php 
function sethead($javascript){ 
echo '<html><head>'; 
echo '<link rel="stylesheet" type="text/css" href="site.css" />'; 
echo '<script type="text/javascript" src="jquery1.9.1.js"></script>'; 
echo $javascript; 
echo '</head>'; 
} 
?> 

inc.php 페이지는 다음과 같이 각 페이지에 대해 머리를 설정합니다 sethead() 함수가 포함되어

page: main.php 
<?php 
include('inc.php'); 
$javascript = '<script type="text/javascript" language="javascript">.......</script>'; 
sethead($javascript); 
<body> 
Here body codes go here 
..................... 
..................... 
..................... 
</body> 
</html> 
?> 

main.php 페이지 수를 secondpage.php, thirdpage.php ....와 같은 페이지 여야합니다. 하지만 각 페이지의 javascript가 다를 수 있으므로 sethead ($ javascript)의 함수 매개 변수에서이 javascript를 반향시켜야합니다. 하지만 자바 스크립트 코드는 변수에 넣기 어려운 여러 줄로 구성되어 있기 때문에 sethead ($ javascript) 함수를 호출하기 전에 main.php 페이지에서이 javascript 매개 변수를 선언하는 적절한 방법을 찾을 수 없습니다. 내가 변수/함수 매개 변수에 자바 스크립트 코드의 위의 라인을 넣을 수있는 방법

<script type="text/javascript" language="javascript"> 
document.oncontextmenu = function() { 
    return false; 
} 
window.onbeforeunload = function() { 
     return "Please don't reload this page."; 
    } 
</script> 

는 쉬운 방법 (자바 스크립트 $)?

+0

왜 이런 식입니까? PHP는 스테로이드의 HTML과 같습니다. 조건부로'script.js '를 포함시키고'header.php'를 필요로 할 곳에'header.php'를 만들 것입니다. 자바 스크립트 ** ** 에 자바 스크립트 **를 작성하십시오. – elclanrs

+0

main.php 페이지에 두 개의 include가 필요하기 때문에 첫 번째는 header.php이고 두 번째 것은 header.php에 script.js입니다. 나는 내 사이트가 공유 호스팅에 있으며 PHP 스크립트/자바 스크립트/분당 동시 수의 한계가 PHP 페이지 당 포함의 수를 줄이려고합니다. 따라서 다른 파일에서 script.js를 호출하는 대신 script.js를 함수 매개 변수로 선언하고자합니다. – stockBoi

+0

걱정된다면, 최선의 방법은 모든 스크립트를 하나의 스크립트로 축소하고 헤더가 아닌 본문에로드 한 다음 JavaScript의 모든 논리를 수행하는 것입니다. 이것은 일반적인 관행입니다. – elclanrs

답변

1

당신은 쉽게 여러 줄 변수를 정의하는 이유를 사용 NOWDOC하려면 다음

$javascript = <<<'EOD' 
<script type="text/javascript" language="javascript"> 
document.oncontextmenu = function() { 
    return false; 
} 
window.onbeforeunload = function() { 
     return "Please don't reload this page."; 
    } 
</script> 
EOD; 

그것을 외부의 .js 파일에 자바 스크립트를 작성하여 파일 이름을 통과하는 것이 더 쉬울 수 수도 있지만 대신 포함하십시오. 모든 ' 문자를 탈출하는 것을 잊지 마세요

$javascript = ' 
    <script type="text/javascript" language="javascript"> 
    document.oncontextmenu = function() { 
     return false; 
    } 
    window.onbeforeunload = function() { 
     return "Please don\'t reload this page."; 
    } 
    </script> 
'; 

그리고 : 당신은 단순히 흰색 수 있도록

+0

전에 'nowdoc'방법을 듣지 않았습니다. 이 방법에 대해 설명해 주시겠습니까? 아니면 제가이 방법에 대해 많이 알 수있는 링크를 주시겠습니까? – stockBoi

+0

나는 NOWDOC 및 HEREDOC에 관한 기사를 얻었습니다. 어떤 심볼도 벗어날 필요가 없기 때문에 이것이 최상의 솔루션이라고 생각합니다. Jan Traenkner 감사합니다. – stockBoi

1

PHP는 여러 문자열을 지원합니다.

하지만 최상의 결정은 js 파일에 js 코드를 보관하는 것입니다.

+0

고마워, 그냥 PHP가 여러 줄 문자열을 지원하는지 여부와 그 줄 문자를 어떻게 작성 하는지를 알고 싶다. 내 사이트가 공유 호스팅에 있기 때문에 인클루드 수를 줄이고 싶지만 분당 동시 실행 스크립트의 수는 제한되어 있습니다. – stockBoi

관련 문제