MySQL服务器和PHP5-MySQLi版本是否必须匹配才能实现连接?我目前收到以下错误:我正在运行BSD."致命错误:未捕获的异常'PDOException',消息'找不到驱动程序'......"
这是连接信息:
$info = "mysql:dbname=myDB;host=localhost";
$user = "dbUser";
$pw = "somePW";
return(new PDO($info, $user, $pw));
Run Code Online (Sandbox Code Playgroud)
这是我的MySQL信息:
MySQL的服务器-5.5.24
PHP5-mysqli的-5.4.3
我需要打开一个日志文件进行编写.麻烦的是,许多事情可能同时做到这一点,我不想要冲突.每次写入都是一行,通常大约150个字节(并且总是小于1K),并且不严格按时间顺序获取内容.
我想我想要的是尝试flock(),如果它失败了,继续尝试几秒钟.如果在多次尝试后无法建立锁定,则放弃.
$fh=fopen($logfile, "a");
if (flock($fh, LOCK_EX|LOCK_NB)) {
$locked=TRUE;
} else {
$locked=FALSE;
// Retry lock every 0.1 seconds for 3 seconds...
$x=0; while($x++ < 30) {
usleep(100000);
if (flock($fh, LOCK_EX|LOCK_NB)) {
$locked=TRUE;
break;
}
}
}
if ($locked) {
if (fwrite($fh, strftime("[%Y-%m-%d %T] ") . $logdata . "\n")) {
print "Success.\n";
} else {
print "Fail.\n";
}
flock($fh, LOCK_UN)
} else {
print "Lock failed.\n";
}
Run Code Online (Sandbox Code Playgroud)
我有两个问题,一个是普通的,一个是具体的.首先,除了以不同的方式(do...while等)实现相同的解决方案之外,是否有更好的一般策略来处理这种仅在PHP中运行的问题?其次,有没有更好的方法在PHP中实现它?(是的,我将这些分开了,因为我对战略部分真的很感兴趣.)
我考虑过的一个替代方案是使用syslog(),但PHP代码可能需要在可能无法作为选项提供系统级管理(即向/etc/syslog.conf添加内容)的平台上运行.
更新:|LOCK_NB …
我试图使用awk来解析多线表达式.其中一个看起来像这样:
_begin hello world !
_attrib0 123
_attrib1 super duper
_attrib1 yet another value
_attrib2 foo
_end
Run Code Online (Sandbox Code Playgroud)
我需要提取与_begin和_attrib1相关的值.所以在这个例子中,awk脚本应该返回(每行一个):
hello world ! super duper yet another value
Run Code Online (Sandbox Code Playgroud)
使用的分隔符是制表符(\ t)字符.空格仅在字符串中使用.
目标是在 example.com 创建一个帐户。我们需要一个字母数字名称,我们已经得到了。
我们有什么:
$name="egon111"
$pw="notegon"
curl -s -X POST -d 'username="'"$name"'"&password="'"$pw"'"' https://example.com/create
Run Code Online (Sandbox Code Playgroud)
我们通常需要以下curl命令:
curl -s -X POST -d "username=egon111&password=notegon" https://example.com/create
Run Code Online (Sandbox Code Playgroud)
语法有什么问题?在我看来,我们目前准确地发送名称$name和密码$pw,而不是变量本身,这是完全错误的。我们得到以下错误:
Select a username that is alphanumeric.
Run Code Online (Sandbox Code Playgroud)
格雷茨,克拉拉
我是 stackoverflow 的新手。欢迎大家发表评论,以便我提高自己。
我是ubuntu和cron的新手.我已在命令行中输入以下内容:
crontab -e
Run Code Online (Sandbox Code Playgroud)
我得到以下输出:"没有crontab泰迪 - 使用空的888"
然后我进入我希望它执行的时候(我相信这是对的?...我希望它每天运行一次,每天晚上8点运行):
00 18 * * * /*****/*****/****/test.php
Run Code Online (Sandbox Code Playgroud)
这是我的问题,我不知道如何退回到命令行.我输入的所有东西都给了我奇怪的外观字母而输入(返回)却没有做任何事情.我已经读过这将完成这项工作
ESC : w q
Run Code Online (Sandbox Code Playgroud)
但它不适合我.我尝试输入,我试着同时按下它们,我一次尝试按一个.没什么,仍然卡住了.当我按下ESC时,它出现为^ [.
这可能是一个非常简单的问题,如果它是愚蠢的我会道歉,但我已经被困住了一段时间.任何帮助将非常感谢.
谢谢
PS我读的地方,如果这是你需要到在的cronjob年底做的端线的第一份工作......这是一个简单的输入按键或实际键入\n吗?
如何使用C#/ .NET进行简单的作业调度?
假设我有一个方法(某个类),我想每天,每小时,每周等自动运行.
这样做有一个简单的方法吗?
我需要帮助更新这个脚本,如果 ping 失败,它会向另一个主机发送另一个 ping(除了现在发送的电子邮件,如果 ping 失败)。如何从这个脚本中做到这一点?
#!/bin/bash
HOSTS="IP ADRESS"
COUNT=4
for myHost in $HOSTS
do
count=$(ping -c $COUNT $myHost | grep 'received' | awk -F',' '{ print $2 }' | a$
if [ $count -eq 0 ]; then
# 100% failed
echo "Server failed at $(date)" | mail -s "Server Down" myadress@gmail.com
echo "Host : $myHost is down (ping failed) at $(date)"
fi
done
Run Code Online (Sandbox Code Playgroud) 示例网址 = http://www.example.com/aa/bb/cc/dd?q=ab&c=1
所以在这个 url 中,我需要在最后一个斜杠之后和问号之前有值 dd
如何为此编写正则表达式
我写了在最后一个斜杠之后获取值,但无法弄清楚如何在查询字符串之前获取唯一的值“dd”。
正则表达式:[^/]+$
我试图将传入 awk 的文本分配给一个变量,然后更改 $0 ,然后输出原始字符串和更改后的字符串:
# echo "This is a test" |awk '{text=$0; gsub(/ /,"%20"); print $text; print $0;}'
This%20is%20a%20test
This%20is%20a%20test
Run Code Online (Sandbox Code Playgroud)
但我期待着它的回归
This%20is%20a%20test
This is a test
Run Code Online (Sandbox Code Playgroud)
尝试更改 #text 变量会产生同样的效果。
# echo "This is a test" |awk '{text=$0; $text gsub(/ /,"%20"); print $text; print $0;}'
This%20is%20a%20test
This%20is%20a%20test
Run Code Online (Sandbox Code Playgroud)
运行 DSM 6.2 的 Synology 上的 GNU Awk 4.1.3、API:1.1(GNU MPFR 3.1.3、GNU MP 6.0.0)
我有一个文件,我目前发送的电子邮件是这样的
/usr/sbin/sendmail me@gmail.com < f1.txt
Run Code Online (Sandbox Code Playgroud)
我对文件进行了一些更改,以便它包含一个占位符,我使用sed进行调整
sed -e s/PLACEHOLDER/TEST/g f1.txt
Run Code Online (Sandbox Code Playgroud)
我如何结合2?我以为会这样做
/usr/sbin/sendmail me@gmail.com <(sed -e s/PLACEHOLDER/TEST/g f1.txt)
Run Code Online (Sandbox Code Playgroud)
但那"挂起".谁能指出我正确的方向?