^(?=.*[0-9])(?=.*[A-z])[0-9A-z-]{17}$
Run Code Online (Sandbox Code Playgroud)
应该匹配"17个字母数字字符,也允许使用连字符,必须包含至少一个字母和至少一个数字"
它会正确匹配:
ABCDF31U100027743
Run Code Online (Sandbox Code Playgroud)
并正确拒绝匹配:
AB$DF31U100027743
Run Code Online (Sandbox Code Playgroud)
(以及几乎任何其他非字母数字字符)
但显然会允许:
AB^DF31U100027743
Run Code Online (Sandbox Code Playgroud) 方案:从数据库中获取电子邮件模板,并循环访问收件人列表,为每个收件人个性化电子邮件.
我的电子邮件模板作为嵌套对象返回.它可能看起来像这样:
object(stdClass) {
["title"] => "Event Notification"
["sender"] => "notifications@mysite.com"
["content"] => object(stdClass) {
["salutation"] => "Dear %%firstname%%,"
["body"] => "Lorem ipsum %%recipient_email%% etc etc..."
}
}
Run Code Online (Sandbox Code Playgroud)
然后我遍历收件人,将此$ email对象传递给personalize()函数:
foreach( $recipients as $recipient ){
$email_body = personalise( $email, $recipient );
//send_email();
}
Run Code Online (Sandbox Code Playgroud)
当然,问题是我需要通过引用传递$ email对象以便它替换个性化标记 - 但是如果我这样做,原始对象就会被更改,不再包含个性化标记.
据我所知,克隆在这里不会帮助我,因为它只会创建一个浅拷贝:电子邮件对象内的内容对象不会被克隆.
我已经读过关于使用unserialize(序列化($ obj))来解决这个问题 - 但是我读过的所有内容都说这是一个很大的性能影响.
所以,两个人最后得到了我的两个问题:
我已经通过使用data()而不是attr()解决了这个问题,但我仍然想知道这是否只是我,以及是什么导致它:
我正在使用jQuery 1.7.1和TinyMCE 3.5b3(jQuery包).没有其他JS库.
当单击链接时,此代码按预期输出"string"和锚标记的href.
$('a.page_item_delete').on('click', function(event){
event.preventDefault();
var $this = $(this);
console.log(typeof $this.attr('href'));
console.log($this.attr('href'));
});
Run Code Online (Sandbox Code Playgroud)
当我在页面上的某些textareas上激活TinyMCE时,它会输出"Object",当然,attr()会停止返回预期值.我通过以下方式激活TinyMCE:
$( 'textarea.tinymce')TinyMCE的(选择);
有没有其他人用TinyMCE经历过这种行为?是否存在已知错误或解决方法?为什么TinyMCE显然会影响页面上不相关的HTML元素?
我将以下内容作为shell脚本的一部分,将站点文件复制到S3 CDN:
for i in "${S3_ASSET_FOLDERS[@]}"; do
s3cmd sync -c /path/to/.s3cfg --recursive --acl-public --no-check-md5 --guess-mime-type --verbose --exclude-from=sync_ignore.txt /path/to/local/${i} s3://my.cdn/path/to/remote/${i}
done
Run Code Online (Sandbox Code Playgroud)
说S3_ASSET_FOLDERS是:
("一二/")
并说这两个文件夹都包含一个名为..."script.js"的文件
并说我已经对两个/ script.js进行了更改- 但没有触及一个/ script.js
运行上面的命令将首先将文件从/ one /复制到正确的位置,虽然我不知道为什么它认为它需要:
信息:发送文件'/path/to/local/one/script.js',请稍候...文件'/path/to/local/one/script.js'存储为's3://my.cdn/ path/to/remote/one/script.js'(在0.1秒内为13551字节,168.22 kB/s)[1 of 0]
...然后是第二个文件夹的远程复制操作:
remote copy:two/script.js - > script.js
它在做什么?为什么??那些文件甚至都不相似.不同的修改时间,不同的校验和.没关系.
我最终得到一个带有两个不正确文件的s3存储桶./ two /中应该更新的文件没有.并且/ one /中不应该更改的文件现在被/two/script.js的内容覆盖
很明显,我做了一些奇怪的事,因为我没有看到其他人有同样的问题.但我不知道是什么?
我正在从一个由ELB后面的2个t2.medium实例组成的站点获得间歇性但经常503错误("服务不可用:后端服务器处于容量").没有人负载特别重,所有监控似乎都很正常.
此处的AWS文档: http ://docs.aws.amazon.com/ElasticLoadBalancing/latest/DeveloperGuide/ts-elb-error-message.html表示潜在原因是ELB和EC2之间的超时设置不匹配:"设置保持活动超时大于或等于负载均衡器的空闲超时设置"
EC2上的Apache conf有:
负载均衡器上的空闲超时为60秒.
那么这似乎是一个原因,但我不确定这个问题.增加Apache KeepAliveTimeout不是 - 我理解 - 通常建议,并且我同样不确定减少ELB上的空闲超时对站点性能的影响.
推荐的方法是什么?如何才能了解我的设置的理想设置以及它处理的流量级别(目前约为30-50请求/分钟)?
假设我有一个带有整数字段的数据库表 - 称之为"flavor",该字段的值只能是数字1到10.
有没有办法从数据库中选择一个随机行,20%的可能性是6号味道,30%的可能性是2号味道,50%的可能性是味道1?
对迟到的回应表示歉意 - 非常感谢您的帮助.欧根的答案似乎最能涵盖我所需要的; 我知道ORDER BY rand()的危险,但我正在编写的应用程序不能在大型数据源上运行,或者必须支持许多并发用户.所以我会接受它并接受性能打击.
我在我的服务器上运行了locale -a,可以看到它安装了阿拉伯语语言环境设置:
但是,如果我通过以下方式设置区域设置:
$locale = array('ar_AE', 'ar_AE.iso88596', 'ar_AE.utf8', 'ar');
setlocale(LC_TIME, $locale);
Run Code Online (Sandbox Code Playgroud)
并输出:
strftime('%A %d %B', $current_date)
Run Code Online (Sandbox Code Playgroud)
显示的日期是英文,而不是阿拉伯文.
阿拉伯语是唯一不适用的语言:我正在使用的网站有15种语言,所有其他语言都显示翻译日期.
出了什么问题?
我没有得到任何返回以下的行,我不知道为什么.我是否正确定义了全文索引?
CREATE TABLE `client_contact` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`first_name` varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL,
`last_name` varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL,
`email` varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL,
`phone` varchar(45) COLLATE utf8_unicode_ci DEFAULT NULL,
`company` int(11) DEFAULT NULL,
`billing_address` text COLLATE utf8_unicode_ci,
PRIMARY KEY (`id`),
FULLTEXT KEY `client_search` (`first_name`,`last_name`,`email`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
INSERT INTO `client_contact` (`first_name`, `last_name`, `email`, `phone`, `company`, `billing_address`) VALUES
('John', 'Smith', 'john.smith@company.com', '123456', 1, '1 Any Street'),
('Mary', 'Smith', 'mary.smith@company.com', '123456', 1, '1 Any Street'); …
Run Code Online (Sandbox Code Playgroud) 我在页面上有一些选项卡式内容,URL 中的哈希段可将您带到正确的选项卡内容。没什么不寻常的。但是,由于选项卡位于页面下方的一小段距离,当有人在 URL 中使用哈希目标进行访问时,他们会被下拉到页面下方的选项卡位 - 这会切断顶部导航栏和面包屑。
我不希望这种情况发生。这是迷失方向。
我认为纠正很简单:例如:
$(function(){
window.scrollTo(0,0)
});
Run Code Online (Sandbox Code Playgroud)
那行不通。您仍然会被丢弃在哈希锚上。
我试过在 window.load() 上调用它。我尝试将脚本从 < head > 移动到 . 我试过 window.scrollTo 和 window.scroll。什么都行不通。我能够真正将我移回页面顶部的唯一脚本是:
$(function(){
setTimeout(function(){
window.scrollTo(0,0)
},2000);
});
Run Code Online (Sandbox Code Playgroud)
...这比根本不滚动更糟糕。
为什么其他的都行不通?是我做错了什么,还是其他什么原因阻止了我将用户移回页面顶部?
====================== 编辑:
一个例子(你可能想用更多的 Lorem 参数来填充它)。将其保存到一个新的 HTML 文件,然后转到 #hash1 URL:
<!doctype html>
<html lang="en">
<head>
<meta http-equiv="Content-type" content="text/html;charset=utf-8" />
<title>Load</title>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8/jquery.min.js"></script>
<script type="text/javascript">
/*
// doesn't work
$(function(){
window.scrollTo(0,0);
});
// doesn't work
$(window).on('load', function(){
window.scrollTo(0,0);
});
// doesn't work
window.scrollTo(0,0);
// works, but horrible UX.
$(function(){
setTimeout(function(){ …
Run Code Online (Sandbox Code Playgroud) 我正在尝试从 GitLab CI 中运行的 Docker 部署容器通过 SSH 连接到远程网络服务器。我第一次尝试时确实成功连接了一次。现在它不断失败:调试输出的最后两行(完整输出如下)是:
debug1: expecting SSH2_MSG_KEX_ECDH_REPLY
Connection closed by ********** port 22
Run Code Online (Sandbox Code Playgroud)
部署任务首先从 GitLab CI“秘密变量”复制 SSH 私钥(公钥当然位于~/.ssh/authorized_keys
远程)。完整的部署任务定义为gitlab-ci.yml
:
.deploy: &import_deploy
stage: deploy
image: **********
tags: [ek-docker]
before_script:
# install openssh & rsync
- apk update && apk --no-cache add rsync openssh
# copy private key from GitLab secret variable to container
- mkdir -p ~/.ssh
- chmod 700 ~/.ssh
- eval $(ssh-agent -s)
- echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config
- …
Run Code Online (Sandbox Code Playgroud)