当使用readfile() - 在Apache上使用PHP时 - 文件会立即读入Apache的输出缓冲区并完成PHP脚本执行,或者PHP脚本执行是否等到客户端完成下载文件(或服务器超时,以先发生者为准)?
较长的背景故事:
我有一个网站,里面有很多大型的mp3文件(当地教会的布道).并非允许下载音频存档中的所有文件,因此/sermon/{filename}.mp3路径将被重写为真正执行/sermon.php?filename={filename},如果允许下载文件,则内容类型设置为"audio/mpeg",文件使用readfile()流出.我一直在接受投诉(几乎全部来自通过3G下载流媒体的iPhone用户)文件没有完全下载,或者他们在大约10或15分钟后切断了.当我从带有readfile()的文件流式传输切换到简单地重定向到文件 - header("Location:$ file_url"); - 所有投诉都消失了(我甚至与一些用户进行了核实,这些用户可以根据需要可靠地重现问题).
这让我怀疑当使用readfile()时,PHP脚本引擎正在使用,直到文件被完全下载,但我找不到任何确认或否认这个理论的引用.我承认我在ASP.NET世界中更像是家,而dotNet等效的readfile()会立即将整个文件推送到IIS输出缓冲区,因此ASP.NET执行管道可以独立于文件的传递而完成到最终客户端...是否有相当于PHP + Apache的这种行为?
对于Braintree_PaymentMethod :: create()函数,其中一个选项是:
'failOnDuplicatePaymentMethod', bool如果传递此选项并且已将支付方法添加到Vault,则请求将失败.此选项不适用于PayPal付款方式.
这似乎是一个全球比较.即,如果保险库中存在信用卡信息,无论客户ID如何,这都将失败.
有没有办法检查特定客户的重复项?
我在ColdFusion 9中的变量中存储了以下HTML.我需要在第4个之后插入一个新的表行</tr>.即在提交按钮之前.
<form name="form1" id="form1" action="" method="post">
<table>
<tr style="visibility:hidden;display:none;"><td> <input type="hidden" id="ref1" name="ref1" value="1" > </td></tr>
<tr style="visibility:hidden;display:none;"><td> <input type="hidden" id="ref2" name="ref2" value="2" > </td></tr>
<tr>
<th style="text-align:left;">Name * </th>
<td><input type="text" name="foo" id="foo" size="30" maxlength="50" value=""></td>
</tr>
<tr>
<th title="Please enter plain text or HTML." style="cursor:help;text-align:left;">Comment * </th>
<td><textarea name="bar" id="bar" cols="40" rows="10" ></textarea></td>
</tr>
<tr>
<th colspan="1"></th>
<td>
<input style="width:80px" type="submit" value="Submit">
<input style="width:80px" type="button" value="Cancel">
</td>
</tr>
</table>
Run Code Online (Sandbox Code Playgroud)
ReReplace似乎是要走的路,但是我无法正确使用正则表达式.另一个选择是拆分字符串并使用我的新HTML在中间重建它.任何建议,将不胜感激.
我使用gmdate PHP函数将当前日期插入数据库,但它显示GMT时间,我可以将其更改为我的时区+3吗?
这是代码
$sql = "INSERT INTO Students
VALUES ('','" . $info[$i]['firstname'] . "', '" . $info[$i]['lastname'] . "',
'" . $info[$i]['sex'] . "', '" . $info[$i]['major'] . "',
'" . $info[$i]['favorite'] . "', '" . $info[$i]['GPA'] . "',
'". gmdate('m/d/Y g:i:s A') . "')" ;
Run Code Online (Sandbox Code Playgroud) 我正在用VQmod为Opencart编写我的第一个xml文件.看到这些台词:
<?xml version="1.0" encoding="UTF-8"?>
<modification>
<id>Exibe porcento de desconto</id>
<version>1.0</version>
<vqmver>2.1.5</vqmver>
<author>Oldman</author>
<file name="catalog/view/theme/my_theme/template/product/product.tpl">
<operation>
<search position="after"><![CDATA[<?php if ($price) { ?>
<div class="price">
<span class="txt_price"><?php echo $text_price; ?></span>
<?php if (!$special) { ?>
<?php echo $price; ?>
<?php } else { ?>
<span class="price-old"><?php echo $price; ?></span> <span class="price-new"><?php echo $special; ?></span>
<?php } ?>]]></search>
<add><![CDATA[ <?php echo 'Works fine!';?>]]></add>
</operation>
</file>
</modification>
Run Code Online (Sandbox Code Playgroud)
但是,当我将xml文件放入vqmod/xml文件夹时,它不起作用.我究竟做错了什么?
php ×3
apache ×1
braintree ×1
coldfusion ×1
coldfusion-9 ×1
html-parsing ×1
opencart ×1
regex ×1
sql ×1
vqmod ×1