小编Elz*_*ugi的帖子

解析IMAP时,base64编码的字符串通过fgets调用被截断

我正在使用Zend_Mail解析电子邮件,奇怪的是一些内容在没有明显原因的情况下被截断,并且使电子邮件部分出错.

例如

Content-Disposition: attachment; filename="file.sdv"

DQogICAgICBTT05FO0xBTkRJTkdTREE7U0FMR1NEQVRPIDtOQVNKIDtSRURTS0FQICAgICAgICAg
ICAgIDsgRklTS0VTTEFHO1BSRVNFUlYgICA7ICBUSUxTVEFORDsgU1TYUlJFTFNFOyAgS1ZBTElU
RVQ7T01TVFlQRSAgO01JTlNURVBSSVM7ICAgICBWRVJESTsgICBLVkFOVFVNOyAgUlVORFZFS1Qg
IA0KLS0tLS0tLS0tLTstLS0tLS0tLS0tOy0tLS0tLS0tLS07LS0tLS07LS0tLS0tLS0tLS0tLS0t
LS0tLS07LS0tLS0tLS0tLTstLS0tLS0tLS0tOy0tLS0tLS0tLS07LS0tLS0tLS0tLTstLS0tLS0t
LS0tOy0tLS0tLS0tLTstLS0tLS0tLS0tOy0tLS0tLS0tLS07LS0tLS0tLS0tLTstLS0tLS0tLS0t
ICANCiAgICAgICAgIDA7MjAxMC4wOS4wODsyMDEwLjA5LjA4O05vcnNrO0dhcm4gICAgICAgICAg
ICAgICAgOyAgICAgIDEwMjE7RkVSU0sgICAgIDsgICAgICAgMjEwOyAgIDQwMjA5OTk7ICAgICAg
ICAyMDtFZ2Vub3ZlcnQ7ICAgICAgICAgIDsgICAzMDcyLDE2OyAgICAgICAyMTE7ICAgICAyNTMs
MiAgDQogICAgICAgICAwOzIwMTAuMDkuMDg7MjAxMC4wOS4wODtOb3JzaztHYXJuICAgICAgICAg
Run Code Online (Sandbox Code Playgroud)

被截断为

Content-Disposition: attachment; filename="file.sdv"

DQogICAgICBTT05FO0xBTkRJTkdTREE7U0FMR1NEQVRPIDtOQVNKIDtSRURTS0FQICAgICAgICAg
ICAgIDsgRklTS0VTTEFHO1BSRVNFUlYgICA7ICBUSUxTVEFORDsgU1TYUlJFTFNFOyAgS1ZBTElU
RVQ7T01TVFlQRSAgO01JTlNURVBSSVM7ICAgICBWRVJESTsgICBLVkFOVFVNOyAgUlVORFZFS1Qg
IA0KLS0tLS0tLS0tLTstLS0tLS0tLS0tOy0tLS0tLS0tLS07LS0tLS07LS0tLS0tLS0tLS0tLS0t
LS0tLS07LS0tLS0tLS0tLTstLS0tLS0tLS0tOy0tLS0tLS0tLS07LS0tLS0tLS0tLTstLS0tLS0t
LS
Run Code Online (Sandbox Code Playgroud)

每行的var_dump显示了这一点.

string(78) "DQogICAgICBTT05FO0xBTkRJTkdTREE7U0FMR1NEQVRPIDtOQVNKIDtSRURTS0FQICAgICAgICAg
"
string(78) "ICAgIDsgRklTS0VTTEFHO1BSRVNFUlYgICA7ICBUSUxTVEFORDsgU1TYUlJFTFNFOyAgS1ZBTElU
"
string(78) "RVQ7T01TVFlQRSAgO01JTlNURVBSSVM7ICAgICBWRVJESTsgICBLVkFOVFVNOyAgUlVORFZFS1Qg
"
string(78) "IA0KLS0tLS0tLS0tLTstLS0tLS0tLS0tOy0tLS0tLS0tLS07LS0tLS07LS0tLS0tLS0tLS0tLS0t
"
string(78) "LS0tLS07LS0tLS0tLS0tLTstLS0tLS0tLS0tOy0tLS0tLS0tLS07LS0tLS0tLS0tLTstLS0tLS0t
"
string(5) "LS)
"
string(17) "TAG5 OK Success
"    
Run Code Online (Sandbox Code Playgroud)

或者在其他电子邮箱中

DQogICAgICBTT05FO0xBTkRJTkdTREE7U0FMR1NEQVRPIDtOQVNKIDtSRURTS0FQICAgICAgICAg
ICAgIDsgRklTS0VTTEFHO1BSRVNFUlYgICA7ICBUSUxTVEFORDsgU1TYUlJFTFNFOyAgS1ZBTElU
RVQ7T01TVFlQRSAgO01JTlNURVBSSVM7ICAgICBWRVJESTsgICBLVkFOVFVNOyAgUlVORFZFS1Qg
IA0KLS0tLS0tLS0tLTstLS0tLS0tLS0tOy0tLS0tLS0tLS07LS0tLS07LS0tLS0tLS0tLS0tLS0t
LS0tLS07LS0tLS0tLS0tLTstLS0tLS0tLS0tOy0tLS0tLS0tLS07LS0tLS0tLS0tLTstLS0tLS0t
LS0tOy0tLS0tLS0tLTstLS0tLS0tLS0tO
Run Code Online (Sandbox Code Playgroud)

我无法弄清楚为什么要停在那里.传输应该只停留在行尾.这是从IMAP服务器获取字符串的行.

$line = @fgets($this->_socket);
Run Code Online (Sandbox Code Playgroud)

编码文本包含类似的字符串,但同样会在不同电子邮件的各个部分中截断.

----------;----------;----------;-----;--------------------;----------;----------;--
Run Code Online (Sandbox Code Playgroud)

我试图为fgets()添加一个大小,但没有结果.我还启用/禁用了"auto_detect_line_endings"php_ini设置,再次没有结果.

我还用ZF 打开了一个错误报告,尽管错误似乎不在库中.

你看到这个编码的字符串有什么奇怪的吗?

UPDATE

新的研究表明,电子邮件在584个字符后被截断.还是不知道为什么.向谷歌发送了一个问题.看到这里.

电子邮件标头错误:

Delivered-To: email@removed.com
Received: by 10.216.3.208 with SMTP …
Run Code Online (Sandbox Code Playgroud)

php base64 imap stream fgets

6
推荐指数
1
解决办法
2017
查看次数

奇怪的apache/PHP POST错误

经过几个小时的搜索错误后,我发现了一个可重复的测试.它使用一种简单的形式:

<form name="test" method="POST" action="test.php">
  <textarea name="content"></textarea>
  <input name="submit" type="submit" value="send"/>
</form>
Run Code Online (Sandbox Code Playgroud)

完全填写textarea substring((SELECT并按下'send'按钮后,服务器返回一般错误:Connection with the server was reset while downloading 我查看了http error_log,但没有报告.

使用:

Linux 2.6.32-220.23.1.el6.x86_64
Build Date  Jul 3 2012
Server API  Apache 2.0 Handler 
Apache Version  Apache/2.2.15 (CentOS) 
Apache API Version  20051115 
PHP Version 5.3.3
Run Code Online (Sandbox Code Playgroud)

test.php没有PHP代码,只有表单.如果我将文件重命名为test.html并更改action ="test.html",则错误保持不变.

在FF 15和Chrome 21上测试,(ERR_CONNECTION_RESET)

Firebug:POST test.php Aborted 192.168.1.1 0 192.168.1.1:80


apache是​​否有可能过滤我的POST数据?我注意到substring((在几个apache漏洞中提到了SELECT.如何禁用这种过滤器?

我在模块中看不到任何mod_security.

php apache security post filtering

6
推荐指数
1
解决办法
1135
查看次数

Sticky Header - Scroll - CSS/jQuery

我想创建一个粘性标题.每当用户向下滚动并且原始标题消失时,"粘性"标题应该开始.

我目前使用这个:

$(function(){
    // Check the initial Poistion of the Sticky Header
    var stickyHeaderTop = $('#sticky').offset().top;
    $(window).scroll(function(){
        if( $(window).scrollTop() > stickyHeaderTop ) {
            //$('#sticky').css({position: 'fixed', top: '0px', float: 'right'});
            $('#sticky').addClass("sticky");
        } else {
            $('#sticky').removeClass("sticky");
        }
    });
});
Run Code Online (Sandbox Code Playgroud)

虽然,当前用户只是在滚动时添加"粘性"类,而不是在原始标题消失时.

问候

css jquery header sticky

5
推荐指数
1
解决办法
1万
查看次数

从MS Outlook邮件中读取发件人的电子邮件地址

我使用下面的代码从MS Outlook 2010中读取传入的邮件 -

public static void outLookApp_NewMailEx(string EntryIDCollection)
{                
    NameSpace _nameSpace;
    ApplicationClass _app;
    _app = new ApplicationClass();
    _nameSpace = _app.GetNamespace("MAPI");
    object o = _nameSpace.GetItemFromID(EntryIDCollection);
    MailItem Item = (MailItem)o;
    string HTMLbpdyTest = Item.HTMLBody;
    string CreationTime = Convert.ToString(Item.CreationTime);
    string strEmailSenderEmailId = Convert.ToString(Item.SenderEmailAddress);
    string strEmailSenderName = Item.SenderName;
    string Subject = Item.Subject;
} 
Run Code Online (Sandbox Code Playgroud)

如何获取发件人的邮件ID.我尝试过,Item.SenderEmailAddress但它没有给我发件人的电子邮件ID.它给了我这样的东西 -

/O=EXG5/OU=EXCHANGE ADMINISTRATIVE GROUP (FYDIBOHF23SPDLT)/CN=RECIPIENTS/CN=TEST35345
Run Code Online (Sandbox Code Playgroud)

c# outlook

5
推荐指数
1
解决办法
6025
查看次数

Portlet - setAttribute和setRenderParameter之间的差异

我是portlet的初学者,我不理解request.setAttribute和response.setRenderParameter之间的区别(对于一个动作).两者都将属性保存到请求中,并允许在之后访问它.我特别想到processAction和动作方法之后的渲染之间的传输.

我知道使用setRenderParameter我们不能"存储"一个复杂的对象,但如果我只想传输一个我应该使用的字符串?

在哪种情况下我们应该使用setRenderParameter方法或setAttribute方法?

portlet

5
推荐指数
1
解决办法
3650
查看次数

上传具有阿拉伯名称的文件

我正在尝试上传具有阿拉伯名称的文件(مرحبابكم),但是当我将其上传到服务器时,字符串不正确,它会显示这样的字符(ريÙ-Ù).

那么,我如何上传文件并保留正确的阿拉伯名字?

<form action="up.php" method="post" enctype="multipart/form-data">
<label for="file">Filename:</label>
<input type="file" name="file" id="file"><br>
<input type="submit" name="submit" value="Submit">
</form>
Run Code Online (Sandbox Code Playgroud)

PHP文件:

 <?php
if ($_FILES["file"]["error"] > 0)
  {
  echo "Error: " . $_FILES["file"]["error"] . "<br>";
  }
else
  {
  echo "Upload: " . $_FILES["file"]["name"] . "<br>";
  echo "Type: " . $_FILES["file"]["type"] . "<br>";
  echo "Size: " . ($_FILES["file"]["size"] / 1024) . " kB<br>";
  echo "Stored in: " . $_FILES["file"]["tmp_name"];
  }
?>
Run Code Online (Sandbox Code Playgroud)

php upload arabic

5
推荐指数
1
解决办法
3262
查看次数

如何读取 .7z 扩展名文件的内容

我想读取 .7z 压缩文件中的文件。我不希望将其提取到本地系统上。但在 Java Buffer 中,我需要读取文件的所有内容。有什么办法吗?如果是,您能提供执行此操作的代码示例吗?

设想:

主文件-TestFile.7z

里面的文件TestFile.7zFirst.xml, Second.xml, Third.xml

我想First.xml在不解压的情况下阅读。

java xml

5
推荐指数
1
解决办法
6565
查看次数

聚合物和PHP

嗨,我刚开始学习聚合物.我使用PHP收集如下数据.我可以将它嵌入到DIV中并显示一些数据,但是我想把这段代码变成一个Polymer元素,其中包含我可以导入的参数,json数据也可以用到我可以用来填充页面的外部Polymer元素.我正在努力开始,我知道这是基本的,但如果有人有指针让我在我的路上,这将是伟大的.

<?php 
$host="host";
$username="username"; 
$password="password"; 
$db_name="database";
$db_query="SELECT * FROM table"; 

$mysqli = new mysqli("$host", "$username", "$password", "$db_name");
if ($mysqli->connect_errno) {
    echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}

$mysqli->real_query("$db_query");
$res = $mysqli->use_result();
$rows = array();
while ($row = $res->fetch_assoc()) {
    $rows[] = $row;
}
print json_encode($rows);

?>      
Run Code Online (Sandbox Code Playgroud)

php polymer

5
推荐指数
1
解决办法
1万
查看次数

magento Soap api仅适用于https

我出于安全目的在HTTPS中运行管理面板.一切都在管理员工作正常.

但是在尝试调用login方法来验证我的安全URL在HTTPS中的位置时,会出现此错误.

SOAP-ERROR:解析WSDL:无法从" https://domain.com/index.php/api/v2_soap/index/?wsdl=1 "加载:无法加载外部实体" https://domain.com /index.php/api/v2_soap/index/?wsdl=1

这在HTTP中工作正常

$username = 'username';
$apiKey = 'apikey';

$api_url_v2 = "https://domain.com/api/v2_soap/?wsdl=1"
$cli = new SoapClient($api_url_v2);
$result = $cli->login(array('username' => $username, 'apiKey' => $apiKey));
Run Code Online (Sandbox Code Playgroud)

soap wsdl magento

5
推荐指数
1
解决办法
1775
查看次数

Magento 2如何根据区域设置自定义货币符号和格式

我想以编程方式更改货币格式模式,货币符号和货币符号位置.我在文件夹vendor\magento\zendframework1\library\Zend\Locale\Data中找到了一些数据.

例如,如果我fr_FR.xml通过以下代码更改格式,则它在前端反映.

<numbers>
        <currencyFormats numberSystem="latn">
            <currencyFormatLength>
                <currencyFormat type="standard">
                    <pattern>¤ #,##0.00</pattern>
                </currencyFormat>
                <currencyFormat type="accounting">
                    <pattern>¤ #,##0.00;(¤ #,##0.00)</pattern>
                </currencyFormat>
            </currencyFormatLength>
            <unitPattern count="one">{0} {1}</unitPattern>
            <unitPattern count="other">{0} {1}</unitPattern>
        </currencyFormats>
        <currencies>
            <currency type="GBP">
                <displayName>livre sterling</displayName>
                <displayName count="one">livre sterling</displayName>
                <displayName count="other">livres sterling</displayName>
                <symbol>£</symbol>
            </currency>
        </currencies>
</numbers>
Run Code Online (Sandbox Code Playgroud)

但我想知道如何覆盖默认的fr_FR.xml(vendor\magento\zendframework1\library\Zend\Locale\Data\fr_FR.xml)

如果有人知道该怎么做,请告诉我.

php zend-framework magento magento2

5
推荐指数
1
解决办法
6091
查看次数

标签 统计

php ×5

magento ×2

apache ×1

arabic ×1

base64 ×1

c# ×1

css ×1

fgets ×1

filtering ×1

header ×1

imap ×1

java ×1

jquery ×1

magento2 ×1

outlook ×1

polymer ×1

portlet ×1

post ×1

security ×1

soap ×1

sticky ×1

stream ×1

upload ×1

wsdl ×1

xml ×1

zend-framework ×1