Php 获取具有长URL的请求

Php 获取具有长URL的请求,php,get,html-email,file-get-contents,Php,Get,Html Email,File Get Contents,我需要做一个get请求,这将反过来发送电子邮件。问题是,所有内容都在url中传递,包括html内容。我在这里面临两个问题: 由于电子邮件内容可以任意长,当我在浏览器中运行时,它显示的URI太大。此外,文件获取内容也显示无效AQRGUENT错误 当我对HTML进行URL编码时,我丢失了内联样式标记,因此邮件无法正确显示 我正在访问一个类似的url 如果HTML内容没有那么长,这是可行的,并且我正在使用它将内容中的链接重写到一些其他URL以启用跟踪。如何通过URL传递大字符串。使用GET请求总是会

我需要做一个get请求,这将反过来发送电子邮件。问题是,所有内容都在url中传递,包括html内容。我在这里面临两个问题:

  • 由于电子邮件内容可以任意长,当我在浏览器中运行时,它显示的URI太大。此外,文件获取内容也显示无效AQRGUENT错误

  • 当我对HTML进行URL编码时,我丢失了内联样式标记,因此邮件无法正确显示

  • 我正在访问一个类似的url


    如果HTML内容没有那么长,这是可行的,并且我正在使用它将内容中的链接重写到一些其他URL以启用跟踪。如何通过URL传递大字符串。

    使用GET请求总是会对可以传递给脚本的数据量设置非常严格的限制

    根据客户机和服务器的不同,可以发送的数据量通常不超过8KB。大多数服务器支持长达8KB的URL。在客户端,MSIE和Safari只支持大约2KB,Opera大约4KB,只有Firefox可以处理8KB。当然,对于您的用例来说,这仍然是不够的


    因此,恐怕唯一可能的解决方案是执行POST请求。

    请注意,安装了suhosin修补程序的PHP设置的get参数默认限制为512个字符。所以,若用户提供龙的数据,你们的URl将不支持,尽管这是一个糟糕的做法,对黑客来说是小菜一碟

    检查

    为此,您可以使用POST并在第二页上接收所有变量

    例如:

    $to = 'abc@xyz.com';
    $subject = 'Your subject here'
    $headers  = 'MIME-Version: 1.0' . "\r\n";
    $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
    $headers .= 'From: Your Site <abc@abc.com>' . "\r\n";
    $message = 'Your Html goes here';
    
    mail($to, $subject, $message, $headers );    
    
    $to='1!'abc@xyz.com';
    $subject='Your subject here'
    $headers='MIME版本:1.0'。“\r\n”;
    $headers.='内容类型:文本/html;字符集=iso-8859-1'。“\r\n”;
    $headers.='From:Your Site'。“\r\n”;
    $message='你的Html在这里';
    邮件($to、$subject、$message、$headers);
    
    需要获取它的任何原因?如果您解释了为什么要这样做,可能更容易找到替代解决方案。GET请求在这里不是合适的请求。你应该写一篇帖子,邮件在正文中。好的,我现在使用cURL和POST请求。但是现在HTML也被剥离了。我的意思是没有样式标签。我怎样才能防止这种情况?