2010-03-25 6 views

답변

3

?> 
alert('Congrats'); 
<? 
+0

왜 PHP 태그가 거꾸로 보였는지 이해하는 데 걸리는 시간이 조금 더 걸립니다! –

+3

두 번째 PHP 태그는 short_open_tag = 0 인 설치에서 중단됩니다. ' fuxia

8

그냥 PHP 태그 외부에서 자바 스크립트 코드를 삽입 :

<?php 
    // your PHP code goes here 
?> 
// your javascript function out of the PHP tag. 
function f() { 
    alert('congrats'); 
} 
+0

이것은 PHP와 출력 마크 업 또는 JS를 이스케이프 처리하는 나의 환경 설정입니다. – bdl

+0

큰 덩어리의 경우에만 그렇지 않으면 매우 지저분 해/읽을 수 없게됩니다! – Veger

2

을 당신이 정말로 는 PHP에서 그것을 인쇄하여 JS를 실행에있는 경우, 그것은 것 이상 js 기능을 일부 파일의 기능에 저장하고 호출을 인쇄하여 호출 한 경우에는 더 명확합니다.

0

당신은 자바 스크립트를 출력하기위한 Model-View-Controller 패턴을 사용할 수 있습니다.

myJavascript.js.php :

alert('hello bob'); 
alert('hello <?php echo $name; ?>'); 
alert('whats up?'); 

컨트롤러, jsController.php :

$name = "Jane"; 
2

당신은 JS의 대부분이 저장되는 "보기"파일을 가질 수 있습니다

난 그냥 PHP 코드 PHP 파일을 예약하고 별도의 템플릿 파일에서 프론트 엔드 코드 (HTML/CSS/자바 스크립트)를 유지하는 것이 좋습니다.

마지막으로 나는 같은 파일로 프리젠 테이션 계층 & 백엔드 코드 12 년 전 대한 인기가 혼합 체크.

- my_project 
    - lib 
     - PHP files here 
    - templates 
     - HTML templates here 
    - public <- this is your document root for web server 
    - index.php <- just a dispatcher 
    - js 
    - images 
    - css 
+1

+1 나는이 dir tree로 할 것이지만 생각은 그대로 남아있다. JS는 드문 경우를 제외하고는 파일을 분리 할 때 kep해야한다. –

1

사용 HEREDOCS을, 또는 "HTML"모드로 PHP 모드에서 벗어나 : 프로젝트의

파일 계층 구조는 다음과 같이 할 수있다. 자바 스크립트가 완전히 정적, 또는 포함 된 일부 PHP 값을 가질 필요가 몇 부분이있는 경우, HTML 모드 ('?>'PHP 점 만점)에 놓습니다. 이렇게하면 적절한 텍스트 편집기가 HTML 및 자바 스크립트를 사용하고 있으며 구문 강조가 적절하다는 것을 알 수 있습니다. 다음 더 읽을 수있는 모든 동일하지만, 스스로 결정 :

'순수 PHP'

<?php 
    echo '<script>'; 
    echo ' var x = [' . $somePHPvar . '];'; 
    echo ' alert(x);'; 
    echo '<script>'; 
?> 

'히어 닥'구문 :

<?php 
echo <<<EOF 
    <script> 
     var x = [{$somePHPvar}]; 
     alert(x); 
    </script> 
EOF; 
?> 

'HTML 모드'

<?php ?> 
<script> 
    var x = [<?php echo $somePHPVar ?>]; 
    alert(x); 
</script> 

각각에 대한 음수/빼기 :

  1. 순수 PHP : 당신은 PHP 모드를 유지 할 수 있고, 당신의 에코 + $ 바르가 PHP 코드로 강조 표시됩니다,하지만 당신은 일반 텍스트로 처리하며 (즉, 채색됩니다 반향하고 자바 스크립트 html로/모든 같은 색)
  2. heredoc 구문 : PHP 모드에서 머물러 있지만 코드에 따옴표 ('")를 벗어나지 않아도되므로 모든 HTML이보다 선명하게 보입니다.대부분의 편집자는 heredoc 블록에서 PHP 변수를 인식하고 적절하게 색상을 지정하지만 나머지 텍스트는 텍스트로 취급되므로 javascript/html도 동일하게 보입니다. 또한 함수 호출을 텍스트에 삽입 할 수 없습니다. heredoc을 시작하기 전에 결과를 var에 저장해야합니다.이 var는 삽입 될 수 있습니다. HEREDOC은 긴 텍스트 블록을 변수에 직접 할당하는 데에도 사용할 수 있습니다.
  3. 'html mode': 편집자가 HTML, 자바 스크립트 및 PHP를보고 인식하고 적절하게 색상을 지정합니다. 그러나 이것은 일부 값을 동적으로 채울 필요가있는 곳이면 PHP 열기/닫기 태그를 뿌려야하는 비용입니다. 더하기 측면에서, 중간 값 var에 값을 저장하지 않고 함수 호출 결과 (htmlspecialchars(), urlecncode(), html_strip_tags() 등 ...)를 직접 삽입 할 수 있습니다. 또한 PHP가 html/javascript 코드를 무작위로 뿌리면 코드를 유지하기가 더 어려워집니다.

여러분이 작업하고있는 특정 코드에서 가장 쉬운 것이 무엇인지 알아보십시오.

관련 문제