我在这里尝试做的是从javascript函数内部调用我的php函数,它会抛出未终止的字符串文字错误
var letters = "<?php echo GetRandLine('en_lang.txt'); ?>";
尽管php函数正确返回。 php函数正在做的是从en_lang.txt.So返回一个单词列表,从我收集到的内容中将<?php ?>
作为</script>
标记进行处理,或者是其他内容。< / p>
PHP:
if (!function_exists('GetRandLine'))
{
function GetRandLine($name)
{
$file = fopen("$name","r");
$text = array();
$count = 0;
while(!feof($file))
{
++$count;
$text[] = fgets($file);
//echo fgets($file). "<br />";
}
fclose($file);
$n = rand(0,100);
$ntext = $text[rand(0,$count)];
//echo $n." ";
if($n > 50)
{
$ntext = $ntext . " " . $text[rand(0,$count)];
}
if($n > 80 && $n < 90)
{
$ntext = $ntext . " " . $text[rand(0,$count)];
}
if($n > 85 && $n < 88)
{
$ntext = $ntext . " " . $text[rand(0,$count)];
}
return $ntext;
}
}
的javascript:
function clicker()
{
var letters = "<?php echo GetRandLine('en_lang.txt'); ?>";
document.getElementById('theinput').value = letters;
document.getElementById("clicker").click();
}
答案 0 :(得分:0)
从GetRandLine返回的字符串可能包含麻烦的字符,包括导致您提到的错误的换行符,您应该对其进行编码
var letters = <?php echo json_encode(GetRandLine('en_lang.txt')); ?>;