我在JavaScript文件中运行PHP,例如......
var = '<?php /*some code*/ ?>';).
我需要使用JavaScript来扫描PHP分隔符的字符串(&lt;?php和?&gt;打开和关闭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”
答案 0 :(得分:2)
Javascript永远不会在你的字符串中找到<?php
,因为它们已经被你的PHP服务器解析过了。 Javascript是一个客户端脚本,在服务器端脚本之后执行。
答案 1 :(得分:1)
您可以利用Javascript将十六进制解析为字符的能力:
if (b.value.indexOf('<\x3fphp')>-1) {alert('PHP delimiter found.');}
在Javascript中'<\x3fphp'
与'<?php'
完全相同,但在PHP中没有任何意义。
答案 2 :(得分:0)
在PHP上使用输出缓冲,然后在缓冲输出上使用htmlspecialchars()。然后,您使用JavaScript搜索HTML实体。
答案 3 :(得分:0)
我想到的第一件事应该是这个简单,小小的“作弊”:
<?php echo '<'.'?php'; ?>
php解释器没有看到<?php
,但输出是按照需要的。
答案 4 :(得分:0)
<?php echo '<?php'; ?>
... <?php echo '?>'; ?>