DEDE 템플릿에서 PHP 스크립트를 실행하는 방법은 무엇입니까?
dede 데이터베이스의 기본 필드를 직접 처리해야 하는 경우가 많습니다. dede에 해당 기능이 없으면 제목에서 알 수 있듯이 PHP 스크립트와 PHP 변수를 실행해야 합니다. 다음과 같은 좋은 예가 있으니 관심 있는 친구들이 참고하면 됩니다
추천 공부 : Dreamweaver cms
dede 템플릿을 사용할 때 해당 필드가 없을 경우 dede 데이터베이스의 기본 필드를 직접 처리해야 하는 경우가 많습니다. 실제로 함수를 사용할 때 함수를 처리할 방법을 찾아야 하는 경우가 많습니다.
예: 데이터 테이블 addonimages에서 특정 레코드의 typeid 필드를 가져온 다음 typeid에 2를 곱한 결과를 브라우저에 출력하고 싶습니다. (참고: 여기서 typeid 값은 6입니다.)
처음에는 이렇게 썼습니다.
코드는 다음과 같습니다.
<body class="index"> {dede:loop table='dede_addonimages' if='aid=94'} [field:typeid runphp='yes'] echo @me*2; [/field:typeid] {/dede:loop} </body>
브라우저 출력은 다음과 같습니다. 12 6
여기에 6이 더 있는 것 같습니다. is [field:typeid]는 먼저 내부 PHP 문을 실행합니다. [/field:typeid] 줄에 도달하면 내부 함수를 호출하고 원하는 경우 [field:typeid] 기본 템플릿의 내용을 직접 반환합니다. 12 를 직접 출력하려면 /include/extend.fuc.php 파일에 사용자 정의 함수만 추가하면 됩니다.
코드는 다음과 같습니다.
function abc($val){ return $val*2; }
그런 다음 템플릿은 다음과 같이 다시 작성됩니다.
코드는 다음과 같습니다.
<body class="index"> {dede:loop table='dede_addonimages' if='aid=94'} [field:typeid function="abc(@me)" /] {/dede:loop} </body>
출력 결과는 다음과 같습니다. 12
또한 두 변수의 변수는 동일한 템플릿에 있는 PHP 코드 조각은 일반적이지 않습니다. 즉, PHP 코드 조각의 변수 범위가 짧은 코드로 제한되어 있다고 가정해 보겠습니다.
예:
코드는 다음과 같습니다.
<body class="index"> {dede:loop table='dede_addonimages' if='aid=94'} [field:typeid runphp='yes'] echo $a=@me*2; [/field:typeid] {/dede:loop} {dede:php}var_dump($a);{/dede:php} </body>
출력 결과는 12 6 NULL
위 PHP 스크립트의 변수를 후속 PHP 스크립트에서 사용하려는 경우 임시 해결책을 생각해 냈습니다. 즉, 전역 변수를 사용하여 이 문제를 해결합니다.
코드는 다음과 같습니다.
<body class="index"> {dede:loop table='dede_addonimages' if='aid=94'} [field:typeid runphp='yes'] $GLOBALS['a']=@me*2; [/field:typeid] {/dede:loop} {dede:php}echo $GLOBALS['a'];{/dede:php} </body>
출력 결과는 6 12입니다([field:typeid]에 에코가 없으므로 6이 직접 출력됩니다)
위 내용은 DEDE 템플릿에서 PHP 스크립트를 실행하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!