这是根据官方文档的信息:
可以在PHP中使用四对不同的开始和结束标记.其中两个,
<?php ?>并且<script language="php"> </script>始终可用.另外两个是短标签和ASP样式标签,可以从php.ini配置文件打开和关闭.因此,虽然有些人发现短标签和ASP样式标签很方便,但它们的便携性较差,一般不推荐.
在我的经验,大多数服务器都启用短标记.打字
<?=
Run Code Online (Sandbox Code Playgroud)
打字要方便得多
<?php echo
Run Code Online (Sandbox Code Playgroud)
程序员的便利是一个重要因素,为什么不推荐他们?
我正在尝试在php.ini中进行一系列更改之后使工作成为upload_progress会话,如:
session.upload_progress.enabled = On
;session.upload_progress.cleanup = On
session.upload_progress.prefix = "upload_progress_"
session.upload_progress.name = "123"
session.upload_progress.freq = "1%"
session.upload_progress.min_freq = "1"
Run Code Online (Sandbox Code Playgroud)
并创建基于html的页面,并使用表单提交文件:
<form action="upload_progress.php" method="POST" enctype="multipart/form-data">
<input type="hidden" name="<?php echo ini_get("session.upload_progress.name"); ?>" value="123" />
<input type="file" name="file1" />
<input type="file" name="file2" />
<input type="submit" />
</form>
Run Code Online (Sandbox Code Playgroud)
然后正确上传文件的服务器端脚本:
session_start();
move_uploaded_file($_FILES['file1']['tmp_name'], './uploads/'.$_FILES['file1']['name']);
move_uploaded_file($_FILES['file2']['tmp_name'], './uploads/'.$_FILES['file2']['name']);
print_r($_SESSION);
Run Code Online (Sandbox Code Playgroud)
$_SESSION虽然文件上传正确完成,但全局变量中有一个空数组.会话设置有什么问题?
我使用的是PHP 5.4.5
Notice: Undefined index: upload_progress_123 in C:\apache\localhost\www\upload_progress.php on line 13
我有一个发送大量记录的PHP脚本,我想在每个记录可用时立即刷新它们:客户端能够在每个记录到达时处理它,它不需要等待整个响应.我意识到整个传输需要稍长的时间,因为它需要以多个数据包发送,但它仍然允许客户端更快地开始工作.
我已经尝试了所有的不同flush()和ob_flush()功能,但似乎没有任何帮助克服线路实际发送数据的页面之前完成.我已经确认它不是网络浏览器,因为我已经使用telnet测试了它.