有替代方案吗?
我使用Advanced Rest Client来测试我正在开发的API。
我发送了一个带有POST的JSON。
在代码中,$_FILES
没问题,但file_get_contents("php://input")
为空。
如果我没有发送任何文件,那么我可以使用file_get_contents("php://input")
PHP版本:5.6.4
答案 0 :(得分:1)
正如GhostGambler所述,php://输入不适用于enctype =“multipart / form-data”。
您不应将JSON作为文件附加到您的请求中,您应该将其作为请求主体添加到post请求中,设置Content-Type
标头(application / json)。然后它将在php://input
中提供。
答案 1 :(得分:1)
答案 2 :(得分:0)
最有可能访问任何POST / FILES超全局消耗php://input
。
在任何情况下,如果您发送JSON有效负载,则您也不能拥有multipart-formdata有效负载,因此$_FILES
应为空。如果您需要在同一页面上处理(错误的想法IMO),请确保在访问$_FILES
或php://input
<之前检查请求正文之外的内容类型标题或其他一些信息/ p>
答案 3 :(得分:0)
php://input
是一个只读流,允许您读取原始数据 来自请求机构。在POST请求的情况下,它是可取的 使用php://input
代替$HTTP_RAW_POST_DATA
,而不是$HTTP_RAW_POST_DATA
依赖于特殊的php.ini指令。而且,对于那些情况 默认情况下不会填充always_populate_raw_post_data
,它是潜在的 激活的内存密集程度较低php://input
。php://stdin
无效 ENCTYPE = “多部分/格式数据” 强>
http://php.net/manual/de/wrappers.php.php
由于HTTP_RAW_POST_DATA是marked deprecated,我猜你有点不走运。我不知道其他选择。
编辑:嗯,您可以尝试STDIN
/ from bs4 import BeautifulSoup
import re
html = your_html_here
soup = BeautifulSoup(html, "html5lib")
links = soup.findAll('a', text=re.compile('^\s*\d+\s*$'))
number = links[-1].string.strip()
print number
# 5
,虽然我不知道这是否适用于网络服务器中的PHP ...也许只是尝试一下。