我通常将它存储在十六进制数字中但是我意识到如果我将它存储在MySQL内的二进制文件中,我可以节省一半的空间.如果我决定将其存储在二进制文件中,是否有任何问题需要注意?
举一个简单的例子,假设您在站点中创建了留言簿,并计划通过API为创建和读取功能提供外部访问.更新和删除将不包含在API中,因为它只应在内部使用.
什么是更好的做法?
通过API使整个CRUD功能可用,并限制公共访问更新和删除.因此,您自己也将使用API进行应用程序的所有内部工作.
在没有API的情况下为所有内部工作制作内部CRUD函数,然后为Create和Read创建单独的API.基本上,这为您提供了两种使用Create和Read的方法 - 一种使用API,一种不使用.
在没有API的情况下进行内部更新和删除功能以进行内部工作,然后为创建和只读创建API.如果您需要使用创建和读取功能进行内部工作,则必须使用API.
我希望很清楚,通常最好的做法是什么?
根据PHP手册: 内部PHP函数主要使用错误报告,只有现代面向对象的扩展使用异常.但是,可以使用ErrorException将错误简单地转换为异常
ErrorException中提供的示例:
<?php
function exception_error_handler($errno, $errstr, $errfile, $errline ) {
throw new ErrorException($errstr, 0, $errno, $errfile, $errline);
}
set_error_handler("exception_error_handler");
Run Code Online (Sandbox Code Playgroud)
它似乎允许使用Exceptions而不是默认的错误报告.我的问题是,这是鼓励还是我们的选择?
此外,这是一个更好的做法,像上面的例子一样单独使用Exception,或者同时使用Exception(set_exception_handler)和Error reporting(set_error_handler)?
我有一个基本的表格布局,在移动设备上查看时会被剪切掉.水平滚动似乎不起作用.该表基本上是卡住和截止.只有垂直滚动才有效.是否可以在Jquery Mobile中启用水平滚动?
桌面浏览器截图:

手机截图:

调整大小的桌面浏览器的屏幕截图(水平滚动也不起作用):

示例代码:
<div style="overflow-x:auto">
<table>
<tr>
<td>foo</td>
<td>foo</td>
<td>foo</td>
</tr>
</table>
</div>
Run Code Online (Sandbox Code Playgroud)
顺便说一句,如果我删除<meta name="viewport" content="width=device-width, initial-scale=1">水平滚动工作,但随后移动的宽度变大,移动视图的目的是完全失败.任何解决方法?
我在MySQL手册中的单词中找不到保留字,但显然phpMyAdmin说它们是保留的:

我从https://developers.facebook.com/docs/reference/plugins/comments/创建了一个评论插件
它没有应用程序ID.我该如何调节它?
或者如果它必须有ID,我如何将应用程序ID放到现有的注释插件中?
下面的代码似乎在Firefox,IE,Safari中显示文本"HELLO WORLD",但在Chrome中则不行.
<Files wp-login.php>
AuthType basic
AuthName "HELLO WORLD"
AuthBasicProvider file
AuthUserFile /home/.htpasswd
Require valid-user
</Files>
ErrorDocument 401 "Authentication required"
Run Code Online (Sandbox Code Playgroud)
如何确保AuthName适用于所有浏览器?
是否可以在 docker-compose.yml 中定义局部变量?
例如这样的事情:
version: '3'
services:
app:
build:
context: .
dockerfile: Dockerfile
image: $APP_NAME
container_name: $APP_NAME
Run Code Online (Sandbox Code Playgroud)
我可以在$APP_NAME同一个docker-compose.yml文件上定义 的值吗?
我的 PHP 脚本有一个错误,例如,这显示在屏幕上:
Warning: require(/var/www/foo.php): failed to open stream:
我在哪里可以在日志中找到它?
我试过了,docker logs containerName但它只显示访问日志。例如,
192.168.2.1 - - [17/Mar/2019:10:00:00 +0000] "GET / HTTP/1.1" 200 505 "-" "Mozilla/5.0 (Windows NT 6.1; Win64; x64)...
它没有显示上面的 PHP 错误。
进入容器内的 Apache 日志文件夹通过docker exec显示以下内容:
root@c9e29891dc0d:/var/log/apache2# ls -hltra
total 0
lrwxrwxrwx. 1 www-data www-data 11 Feb 6 04:42 other_vhosts_access.log -> /dev/stdout
lrwxrwxrwx. 1 www-data www-data 11 Feb 6 04:42 error.log -> /dev/stderr
lrwxrwxrwx. 1 www-data www-data 11 Feb 6 04:42 access.log -> /dev/stdout
Run Code Online (Sandbox Code Playgroud)
我什至不确定这是否是 …
场景一发送x-www-form-urlencoded数据
POST /path HTTP/1.1
Content-Type: application/x-www-form-urlencoded
foo=bar
Run Code Online (Sandbox Code Playgroud)
运行print_r($request->getParsedBody());返回正常:
Array
(
[foo] => bar
)
Run Code Online (Sandbox Code Playgroud)
运行print_r($request->getBody()->getContents());返回一个字符串foo=bar
场景2发送application/json数据
POST /path HTTP/1.1
Content-Type: application/json
{
"foo": "bar"
}
Run Code Online (Sandbox Code Playgroud)
运行print_r($request->getParsedBody());返回一个空数组。Array ( )
但是,运行print_r($request->getBody()->getContents());效果很好:
{"foo":"bar"}
这是预期的行为吗?
这意味着,如果我们要发送x-www-form-urlencoded数据,我们应该使用getParsedBody().
getBody()->getContents()如果我们发送 application/json?则应使用while 。
附加信息:
请求对象是使用以下命令创建的:
$request = \Laminas\Diactoros\ServerRequestFactory::fromGlobals(
$_SERVER, $_GET, $_POST, $_COOKIE, $_FILES
);
Run Code Online (Sandbox Code Playgroud)