[英]How do I stop heroku from restarting a 3rd party script? (Vanilla Forums)
[英]Trying to embed 3rd party Javascript that uses <?js= value ?>, how can i stop php from parsing the “<?”
我在CMS系統的瘋狂混亂中工作,其中php,javascript和html都在模板中。 我試圖從第三方網站下載代碼以獲得集成功能,但是他們有以下形式的javascript:
<script type="lib">
Hello, <?js= firstName ?>!
</script>
PHP解釋器看到並做了它的事情,因此整個模板出錯了。
任何人都知道如何包裝這個代碼塊以防止PHP解釋器關心它?
提前致謝!
如果禁用PHP Short-tags不是一個選項,你可以簡單地使用PHP輸出所述字符串,所以你會得到這樣的東西:
Hello, <?php print "<?js= firstName ?>"; ?>!
禁用PHP短標簽 ,你應該沒有問題。
在啟用了短打開標記的PHP文檔中,PHP解釋器將看到<?
部分<?js
標記並將嘗試將其解析為PHP,從而導致此錯誤:
Parse error: syntax error, unexpected T_STRING in ... on line ...
要解決此問題,請禁用PHP的開放標記的簡短格式( <? ?>
)。
這將禁用<?
和<?=
在您的PHP腳本中。 如果您的網站只使用<?php
標簽,那么這樣做是安全的; 如果它使用<?
同樣,這樣做是不安全的,因為你的腳本將不再按預期運行。
您的Web主機或系統管理將有兩種方法將Apache配置為使用PHP :
您將在下面使用哪種解決方案取決於Apache如何在您的環境中運行PHP *。
在Apache的.htaccess
文件中,放置以下內容:
# PHP as an Apache Module
php_value short_open_tag 0
在全局或本地php.ini
文件中,放置以下內容:
# PHP as a CGI Wrapper
short_open_tag = Off
在任何一種情況下,您都需要在進行任何配置更改后重新啟動Apache,以確保獲取新設置。
注意:如果您的服務器配置為將PHP作為Apache模塊運行,那么您可以選擇使用php.ini
或Apache .htaccess
文件。 但是,如果您的服務器將PHP作為CGI包裝器運行,那么您將只能選擇在本地使用php.ini
文件來更改設置,因為Apache不再完全控制PHP。
當PHP作為CGI包裝器運行時,將PHP設置放入.htaccess
文件將導致服務器拋出錯誤。
你碰巧在運行apache嗎? 這些文件是否與PHP分開存在? 如果是這樣,您可以使用.htaccess文件(如果您有權修改它,則使用httpd.conf)執行以下操作:
<FilesMatch "\.template_file_ext">
php_flag engine off
</FilesMatch>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.