我在JavaScript文件中运行PHP,例如....
var = '<?php /*some code*/ ?>';).
我需要使用JavaScript扫描字符串的PHP分隔符(<? PHP和?
我已经知道使用JavaScript的代码…
if (b.value.indexOf('<?php')>-1) {alert('PHP delimiter found.');}
我遇到的麻烦是,我需要保持PHP在JavaScript文件中解释的能力(没有例外)。我只需要用JavaScript将分隔符字符串输出到客户端,而不需要服务器对其进行解释。
所以最终输出(从客户端视图)将是…
if (b.value.indexOf('<?php')>-1) {alert('PHP delimiter found.');}
使用以下代码…
if (b.value.indexOf('<?php echo '<?php'; ?>')>-1 || b.value.indexOf('<?php echo '?>'; ?>')>-1)
我得到错误:"解析错误:语法错误,意外T_LOGICAL_AND"
Javascript永远不会在字符串中找到<?php
,因为它们已经被PHP服务器解析过了。Javascript是客户端脚本,在服务器端脚本之后执行。
您可以利用Javascript将十六进制解析为字符的能力:
if (b.value.indexOf('<x3fphp')>-1) {alert('PHP delimiter found.');}
在Javascript中'<x3fphp'
与'<?php'
完全相同,但在PHP中没有意义。
在PHP上使用输出缓冲,然后在缓冲的输出上使用htmlspecialchars()。然后使用JavaScript.
我想到的第一件事就是这个简单的小窍门:
<?php echo '<'.'?php'; ?>
php解释器没有看到<?php
,但输出与期望一致。
<?php echo '<?php'; ?>
…<?php echo '?>'; ?>