[英]Output PHP delimiter (<?php, ?>) without PHP interpreting the delimiters
我在JavaScript文件中运行PHP,例如......
var = '<?php /*some code*/ ?>';).
我需要使用JavaScript来扫描PHP分隔符的字符串(<?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.');}
在Java '<\\x3fphp'
与'<?php'
完全相同,但是在PHP中没有意义。
在PHP上使用输出缓冲,然后在缓冲输出上使用htmlspecialchars()。 然后,您使用JavaScript搜索HTML实体。
我想到的第一件事应该是这个简单,小小的“作弊”:
<?php echo '<'.'?php'; ?>
php解释器没有看到<?php
,但输出是所希望的。
<?php echo '<?php'; ?>
<?php echo '<?php'; ?>
... <?php echo '?>'; ?>
<?php echo '?>'; ?>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.