Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP:“您必须遵守《全国人大常委会关于维护互联网安全的决定》及中华人民共和国其他有关法律法规。”;意外的$end“;在文件中间_Php_Printing_Unexpectendoffile - Fatal编程技术网

PHP:“您必须遵守《全国人大常委会关于维护互联网安全的决定》及中华人民共和国其他有关法律法规。”;意外的$end“;在文件中间

PHP:“您必须遵守《全国人大常委会关于维护互联网安全的决定》及中华人民共和国其他有关法律法规。”;意外的$end“;在文件中间,php,printing,unexpectendoffile,Php,Printing,Unexpectendoffile,当我尝试运行此页面(video.php)时,出现以下错误: 解析错误:语法错误,第37行的/base/path/masked/inc/functions.php中出现意外的$end 奇怪的是“functions.php”有超过37行。。。为什么它在那里检测到文件的结尾?我认为我没有遗漏任何括号或括号,因为每个函数只有一条语句(print语句)长 为了解决这个问题,我做了几件事。如果删除函数定义中print_head()和print_foot()的语句,错误就会消失(页面的其余部分工作正常)。如果

当我尝试运行此页面(video.php)时,出现以下错误:

解析错误:语法错误,第37行的/base/path/masked/inc/functions.php中出现意外的$end

奇怪的是“functions.php”有超过37行。。。为什么它在那里检测到文件的结尾?我认为我没有遗漏任何括号或括号,因为每个函数只有一条语句(print语句)长

为了解决这个问题,我做了几件事。如果删除函数定义中print_head()和print_foot()的语句,错误就会消失(页面的其余部分工作正常)。如果我删除其中任何一个函数中的语句,我会得到相同的错误,只是在不同的行上。如果我在页面上移动函数定义,我会得到相同的错误。我甚至尝试删除print语句的部分内容,但仍然会出现相同的错误

编辑:
“视频/传输/播放列表”是获取_vids()加载的示例文件。它是一个平铺的txt文件,有偶数行;奇数行是视频文件的名称,偶数行是前一个文件的标题。我已经进行了测试,以确保get_vids()按预期工作

编辑:
以下是我尝试从命令行运行所有内容时得到的结果:

$ php -l video.php
No syntax errors detected in video.php
$ php video.php

Parse error: syntax error, unexpected $end in /home/nova20/http-dir/orientation/inc/functions.php on line 37
$ php -l inc/functions.php

Parse error: syntax error, unexpected $end in inc/functions.php on line 37
Errors parsing inc/functions.php
这是我的密码:

video.php:

<?php
include('inc/functions.php');

$type=$_GET['type'];
if($type == '') {
    $type = 'transfer';
}

$vidno = $_GET['vid'];
if($vidno == '') {
    $vidno = 1;
}

$vidindex = $vidno - 1;

$videos = get_vids($type);

$filename = $videos[$vidindex]['file'];
$title = $videos[$vidindex]['title'];
$basedir = "videos/$type";
$vidfile = "$basedir/$filename";

if($vidfile != '') {
    $extra = '<script src="/flowplayer/flowplayer-3.1.4.min.js"></script>';
    print_head($title, $extra);

    print <<<ENDHTML
<p>
<a
    href='$vidfile'
    style="display:block;width:640px;height:498px;"
    id="player"
></a>
</p>

<p id="contlink" style="display:none">
<a href="done.php?type=$type&vid=$vidno">Click Here to continue</a>
</p>

<script language="JavaScript">
    flowplayer(
        "player",
        "/flowplayer/flowplayer-3.1.5.swf",
        {
            clip: {
                onFinish: function(){
                    //window.location = "done.php";
                    //alert('done!');
                    document.getElementById('contlink').style.display = "block";
                }
            },
            plugins: {
                controls: {
                    play:true,
                    volume:true,
                    mute:true,
                    time:true,
                    stop:true,
                    fullscreen:true,
                    scrubber:false
                }
            }
        }
    );
</script>
ENDHTML;

    print_foot();
} else {
    print_head('OOPS!');

    print <<<ENDERROR
<h1>OOPS!</h1>
<p>
It looks like there's no video here.  <a onclick="history.go(-1);return false;" href="#">Go back</a> and try again.
</p>
ENDERROR;

    print_foot();
}
?>

我已为您修复了代码:

    <?php
include('inc/functions.php');

$type=$_GET['type'];
if($type == '') {
    $type = 'transfer';
}

$vidno = $_GET['vid'];
if($vidno == '') {
    $vidno = 1;
}

$vidindex = $vidno - 1;

$videos = get_vids($type);

$filename = $videos[$vidindex]['file'];
$title = $videos[$vidindex]['title'];
$basedir = "videos/$type";
$vidfile = "$basedir/$filename";

if($vidfile != '') {
    $extra = '<script src="/flowplayer/flowplayer-3.1.4.min.js"></script>';
    print_head($title, $extra);

    ?>
<p>
<a
    href='<?=$vidfile;?>'
    style="display:block;width:640px;height:498px;"
    id="player"
></a>
</p>

<p id="contlink" style="display:none">
<a href="done.php?type=<?=$type;?>&vid=<?=$vidno;?>">Click Here to continue</a>
</p>

<script language="JavaScript">
    flowplayer(
        "player",
        "/flowplayer/flowplayer-3.1.5.swf",
        {
            clip: {
                onFinish: function(){
                    //window.location = "done.php";
                    //alert('done!');
                    document.getElementById('contlink').style.display = "block";
                }
            },
            plugins: {
                controls: {
                    play:true,
                    volume:true,
                    mute:true,
                    time:true,
                    stop:true,
                    fullscreen:true,
                    scrubber:false
                }
            }
        }
    );
</script>
<?php

    print_foot();
} else {
    print_head('OOPS!');

?>
<h1>OOPS!</h1>
<p>
It looks like there's no video here.  <a onclick="history.go(-1);return false;" href="#">Go back</a> and try again.
</p>
<?php

    print_foot();
}
?>


flowplayer( “玩家”, “/flowplayer/flowplayer-3.1.5.swf”, { 剪辑:{ onFinish:function(){ //window.location=“done.php”; //警惕(‘完成’); document.getElementById('contlink').style.display=“block”; } }, 插件:{ 控制:{ 剧本:没错, 体积:对, 哑巴:是的, 《时代》:没错, 停:是的, 全屏:对, 洗涤器:错误 } } } ); 哎呀! 这里好像没有录像。然后再试一次。

您只需打开和关闭要显示的html周围的php标记即可-如上面所示:)


希望这能有所帮助,它本身并不是检测文件的结尾,而是检测可执行代码行的逻辑结尾

确保您的herdeoc结束标记(ENDHEAD;和ENDFOOT;)前面没有空格,这样您的herdeoc会占用更多的代码块


这是我想到的唯一一件事-
php-l
没有给我任何错误(但在ENDHEAD之前添加了一个空格;给了我您描述的错误)。

此代码的格式与您使用的相同吗?格式是复制粘贴的。我在问题描述中添加了“视频/传输/播放列表”。这些奇怪的“在那里打印HEREDOCs并没有引起问题;我认为pinkgothic是正确的。Heredoc是一种在PHP中创建字符串的强大方法,它有更多的行,但不使用引号。herdoc很少使用,因为日常使用比创建带引号或双引号的字符串更复杂。除此之外,未正确使用的heredoc可能会导致代码中出现问题。”…这就是我没有遇到它的原因,那么:d这有时可能有效,但并不总是有效。例如,我希望php在“print_head”中计算$title和$extra的值,而不是实际打印出“$title”和“$extra”“.herdeocs允许我只键入这些变量,而不添加额外的php标记和打印语句。关闭,但不关闭。我忘了提一下,我试着将herdeoc块拆分成单独的打印语句,但得到了相同的错误。不过,您粘贴的内容检查正常。与中一样,将其粘贴到本地文件中并执行
php-l
操作会产生
未检测到语法错误[…]
(在两个文件上)。试着把你放在这里的东西粘贴回一个本地文件,看看能不能修复它?可能有一个隐藏的断字符(例如,半个UTF-8字符)触发了它。php-l inc/functions.php给了我语法错误。我编辑这篇文章就是为了反映这一点。即使你把你放在这里的代码粘贴回一个空白文件并用它替换
inc/functions.php
,这种情况还是会发生?o、 问题解决了。我将functions.php从这个页面复制到functions.php的实际副本上(并将“”的出现替换为选项卡),它工作得很好。也许我的编辑在某个地方放了一个奇怪的角色。我觉得自己像一个ID-10T。谢谢你的帮助。
1.flv
Introduction
2.flv
Why am I doing this?
3.flv
What can I access with RAIN?
4.flv
How do I access my RAIN Account?
5.flv
How do I Check my registration status?
6.flv
Evaluating transfer credit
7.flv
Transferable degrees
8.flv
Physical Education and History
9.flv
Regents exemptions
10.flv
Academic status
11.flv
How to find my academic advisor?
12.flv
Is Financial Aid available?
13.flv
How do I check my financial aid status?
14.flv
How do I transfer my hope scholarship?
15.flv
Payment information
16.flv
Student Services (Part 1)
17.flv
Student Services (Part 2)
18.flv
Student Services (Part 3)
19.flv
Campus Bookstore
20.flv
Where can I eat on Campus?
21.flv
Where can I live on Campus?
22.flv
How do I register for Parking?
23.flv
Still Have questions?
    <?php
include('inc/functions.php');

$type=$_GET['type'];
if($type == '') {
    $type = 'transfer';
}

$vidno = $_GET['vid'];
if($vidno == '') {
    $vidno = 1;
}

$vidindex = $vidno - 1;

$videos = get_vids($type);

$filename = $videos[$vidindex]['file'];
$title = $videos[$vidindex]['title'];
$basedir = "videos/$type";
$vidfile = "$basedir/$filename";

if($vidfile != '') {
    $extra = '<script src="/flowplayer/flowplayer-3.1.4.min.js"></script>';
    print_head($title, $extra);

    ?>
<p>
<a
    href='<?=$vidfile;?>'
    style="display:block;width:640px;height:498px;"
    id="player"
></a>
</p>

<p id="contlink" style="display:none">
<a href="done.php?type=<?=$type;?>&vid=<?=$vidno;?>">Click Here to continue</a>
</p>

<script language="JavaScript">
    flowplayer(
        "player",
        "/flowplayer/flowplayer-3.1.5.swf",
        {
            clip: {
                onFinish: function(){
                    //window.location = "done.php";
                    //alert('done!');
                    document.getElementById('contlink').style.display = "block";
                }
            },
            plugins: {
                controls: {
                    play:true,
                    volume:true,
                    mute:true,
                    time:true,
                    stop:true,
                    fullscreen:true,
                    scrubber:false
                }
            }
        }
    );
</script>
<?php

    print_foot();
} else {
    print_head('OOPS!');

?>
<h1>OOPS!</h1>
<p>
It looks like there's no video here.  <a onclick="history.go(-1);return false;" href="#">Go back</a> and try again.
</p>
<?php

    print_foot();
}
?>