小编Rev*_*ent的帖子

PHP readfile()和大文件

当使用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的这种行为?

php apache

11
推荐指数
4
解决办法
2万
查看次数

在Braintree中,是否可以仅为一个客户而不是整个保险库验证重复的付款方式?

对于Braintree_PaymentMethod :: create()函数,其中一个选项是:

'failOnDuplicatePaymentMethod', bool

如果传递此选项并且已将支付方法添加到Vault,则请求将失败.此选项不适用于PayPal付款方式.

这似乎是一个全球比较.即,如果保险库中存在信用卡信息,无论客户ID如何,这都将失败.

有没有办法检查特定客户的重复项?

php braintree

7
推荐指数
1
解决办法
2751
查看次数

ColdFusion 9重新替换HTML标记的第n次出现

我在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&nbsp;*&nbsp;</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&nbsp;*&nbsp;</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在中间重建它.任何建议,将不胜感激.

regex coldfusion html-parsing coldfusion-9

2
推荐指数
1
解决办法
388
查看次数

更改gmdate PHP函数的时区

我使用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)

php sql

2
推荐指数
1
解决办法
8172
查看次数

Vqmod - 为Opencart编写第一个文件

我正在用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文件夹时,它不起作用.我究竟做错了什么?

opencart vqmod

0
推荐指数
1
解决办法
4185
查看次数