我创建了一个小的 shell 脚本,它将所有输入记录到一个日志文件中,我以为我可以用它来替换 sendmail 二进制文件,从而实现一种简单的方法来模拟电子邮件传送,而无需实际设置一个工作的 sendmail。
然而,这失败了。由于我无法理解的原因。
我查看了 PHP mail.c 源代码,据我所知(请注意,我在 C 方面不是很有经验),PHP 直接执行并与二进制文件对话(在 中设置sendmail_path
)。但是,当我用脚本替换 sendmail 二进制文件时,不会创建任何日志文件,并且替换 sendmail 的脚本在执行时将始终创建一个日志文件,无论是否存在输入。
脚本本身运行良好。它的返回码应该与sendmail 的返回码一致。不同之处在于,无论输入如何,我的脚本总是返回 0,因为我对检查输入是否有效并不真正感兴趣 - 只是我得到了一些。
是否可以实现我想要的,即使用 sendmail 模拟器?
脚本源码如下:
#!/bin/bash
LOGDIR=/tmp/sendmail-sim
NOW=$(date +%Y%m%dT%H%M)
CNT=1
FILENAME="$LOGDIR/$NOW.$CNT.log"
while [ -f $FILENAME ]; do
CNT=$(($CNT + 1))
FILENAME="$LOGDIR/$NOW.$CNT.log"
done
echo "$0 $*" > $FILENAME
while read BUF
do
echo $BUF >> $FILENAME
done
exit 0
Run Code Online (Sandbox Code Playgroud)
附言。我当前的 sendmail (或者实际上是 postfix)确实从 PHP 接收电子邮件,但我不想实际发送任何电子邮件或需要在开发中挖掘其邮件队列。
我正在尝试进行基本操作:检查字符串是否为数字.
这不起作用:
$qty = $_REQUEST[qty];
if (is_int($qty) == FALSE) {
echo "error";
} else {
echo "ok";
}
Run Code Online (Sandbox Code Playgroud)
这个做了:
$qty = 1;
if (is_int($qty) == FALSE) {
echo "error";
} else {
echo "ok";
}
Run Code Online (Sandbox Code Playgroud)
$_REQUEST[qty]
发布时,AJAX请求($.post). $_REQUEST[qty]
不为空且仅包含数字(1).
is_numeric()
不会起作用,因为它被视为1e4
一个数字.
#box5
如何删除,#box6
和中的要点#box7
?我以为可以通过使用来实现#box5 a
,但它不起作用。
<div id="con3">
<!-- irrelevant markup omitted -->
<div id="box5">
<li><a href="#">LIAM PRICE<br>Australia</a></li>
</div>
<div id="box6">
<li><a href="#">JESS KWARTZ<br>Germany</a></li>
</div>
<div id="box7">
<li><a href="#">ALI JAB<br>Mexico</a></li>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
#box5 {
margin-left: 110px;
margin-top: 10px;
font-family: 'pt_serifitalic';
font-size: 9pt;
line-height: 16px;
}
#box5 a {
color:white;
text-decoration: none;
list-style: none;
}
Run Code Online (Sandbox Code Playgroud) 我有一个关于Node.js加密模块的哈希摘要的问题.
通过hello world
命令行上的输入,base64编码的sha256产生:
$ echo -n "hello world"|shasum -a256|base64 -
Yjk0ZDI3Yjk5MzRkM2UwOGE1MmU1MmQ3ZGE3ZGFiZmFjNDg0ZWZlMzdhNTM4MGVlOTA4OGY3YWNlMmVmY2RlOSAgLQo=
Run Code Online (Sandbox Code Playgroud)
在Node.js(0.12.9)上做同样的事(据我所知)会产生完全不同的结果:
var crypto = require("crypto");
var shasum = crypto.createHash("sha256");
shasum.update("hello world", "utf-8");
shasum.digest("base64");
// 'uU0nuZNNPgilLlLX2n2r+sSE7+N6U4DukIj3rOLvzek='
Run Code Online (Sandbox Code Playgroud)
在Node和命令行中生成的十六进制摘要是相同的(b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9
).为什么base64编码摘要的差异?
我在将第二个样式表链接到我的HTML文档时遇到问题,并且找不到(希望非常明显的)问题.
我在头部链接样式表:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<link rel="stylesheet" href="assets/css/global.css" type="text/css" media="all" title="Global styles" charset="utf-8">
<link rel="stylesheet" href="assets/css/ie.css" type="text/css" media="all" title="IE Overrides" charset="utf-8">
Run Code Online (Sandbox Code Playgroud)
问题是,秒样式表没有任何影响.扭转他们的秩序也证明了这一点.
为了测试,我在第二个样式表中加入了一个规则,使身体背景变红,甚至尝试添加!important
,但无济于事.
/* Global CSS */
body {
background-color: #fff;
}
/* IE CSS */
body {
background-color: #f00 !important;
}
Run Code Online (Sandbox Code Playgroud)
Firebug网络面板显示两个样式表都加载,样式面板显示两个样式,但后者的规则不做深蹲.
这让我感到困惑,因为它是非常非常基本的东西,我之前已经成功完成了数百次.
假设我有以下字符数组.我需要知道是否有办法获得数组中第二个字符串的长度.我知道我可以使用strlen
,但这给了我第一个字符串的长度.
#include <stdio.h>
int main()
{
char greeting[20]={'P','H','O','N','E','\0','6','0','1','7','1','2','1','2','1','6','\0'};
int count;
count=strlen(greeting); // this returns the length of first string which is 5
}
Run Code Online (Sandbox Code Playgroud) 在我的应用程序POST变量包含一些数组.如何循环POST变量以获取PHP中POST变量中键的数组数据.任何帮助表示赞赏.
我试图从另一个表更新一个表,只要客户记录存在,我就能更新,但有一些条目不.
为了解决这个问题,我尝试运行以下插入
SELECT *
INTO SalBudgetCust
FROM SalBudgetCust_temp
WHERE NOT EXISTS (
SELECT Customer
FROM SalBudgetCust
WHERE Customer = SalBudgetCust_temp.Customer
)
Run Code Online (Sandbox Code Playgroud)
但我提示
There is already an object named 'SalBudgetCust' in the database.
Run Code Online (Sandbox Code Playgroud)
我坚持到这一点......任何人都可以提供一点指导吗?
我试图让这块CSS在我的ipad上工作,但它似乎忽略了媒体查询并使用默认的包装CSS代替.有没有办法阻止这种情况发生?
@media only screen and (max-width: 1024px) and (max-height: 768px) {
#wrapper {
position:absolute;
z-index:1;
top:41px;
width:150px;
height:300px;
}
}
#wrapper {
position:absolute;
z-index:1;
top:41px;
bottom:0px;
left:0;
width:100%;
height:800px;
overflow:auto;
}
Run Code Online (Sandbox Code Playgroud)