我听说将一个块元素放在内联元素中是一个HTML罪恶:
<a href="http://www.mydomain.com"><div>
What we have here is a problem.
You see, an anchor element is an inline element,
and the div element is a block level element.
</div></a>
Run Code Online (Sandbox Code Playgroud)
但是,如果你display:block
在样式表中设置外部锚点的样式呢?还是错吗?块级和内联元素的HTML 4.01规范似乎这样认为:
样式表提供了指定任意元素的呈现的方法,包括元素是呈现为块还是内联.在某些情况下,例如列表元素的内联样式,这可能是合适的,但一般来说,不鼓励作者以这种方式覆盖HTML元素的传统解释.
有没有人对此问题有任何进一步的提示?
无论好坏,我们已将整个LAMP Web应用程序从专用计算机迁移到云计算(Amazon EC2计算机).到目前为止它很好,但我们做crons的方式是次优的.我有一个特定于亚马逊的问题,关于如何使用"亚马逊方式"在云中最好地管理cron作业.
问题:我们有多个Web服务器,需要为批量作业运行crons,例如创建RSS提要,触发电子邮件,实际上有很多不同的事情.但是cron作业只需要在一台机器上运行,因为它们经常写入数据库,因此如果在多台机器上运行,则会复制结果.
到目前为止,我们将其中一个网络服务器指定为"主网络服务器",并且它有一些其他网络服务器没有的"特殊"任务.云计算的权衡是可靠性 - 我们不需要"主 - 网络服务器",因为它是单点故障.我们希望它们都是相同的,能够升级和缩小,而不记得不将master-webserver从集群中取出.
我们如何重新设计我们的应用程序以将Linux cron作业转换为没有单点故障的临时工作项?
我的想法到目前为止:
更新:自从问及我在YouTube上观看亚马逊简单工作流服务网络研讨会并在34:40(http://www.youtube.com/watch?v=lBUQiek8Jqk#t=34m40s)注意到的问题后,我看到了一个问题.幻灯片提到cron作为示例应用程序.在他们的文档页面" 亚马逊SWF的AWS Flow Framework样本 "中,亚马逊称他们有crons的示例代码:
... > Cron作业在此示例中,长时间运行的工作流会定期执行活动.可以证明能够继续执行新执行,以便执行可以运行很长一段时间....
我下载了适用于Java的AWS开发工具包(http://aws.amazon.com/sdkforjava/),并确保在一个荒谬的文件夹层中埋藏了一些java代码(aws-java-sdk-1.3.6/samples/AwsFlowFramework/src/com/amazonaws/services/simpleworkflow/flow/examples/periodicworkflow
).
问题是,如果我是诚实的,这并没有真正的帮助,因为它不是我能用我的技能组合轻易消化的东西.PHP SDK中缺少相同的示例,并且似乎没有可以通过该过程的教程.所以基本上,我还在寻找建议或提示.
这可能是一个微不足道的问题,但阅读ARG和ENV的文档并不能让我明白.
我正在构建一个PHP-FPM容器,我希望能够启用/禁用一些用户需求扩展.
如果可以在Dockerfile中通过添加条件并在构建命令上传递标志来完成,那将是很好的,但是不支持AFAIK.
在我的情况下,我个人的方法是在容器启动时运行一个小脚本,如下所示:
#!/bin/sh
set -e
RESTART="false"
# This script will be placed in /config/init/ and run when container starts.
if [ "$INSTALL_XDEBUG" == "true" ]; then
printf "\nInstalling Xdebug ...\n"
yum install -y php71-php-pecl-xdebug
RESTART="true"
fi
...
if [ "$RESTART" == "true" ]; then
printf "\nRestarting php-fpm ...\n"
supervisorctl restart php-fpm
fi
exec "$@"
Run Code Online (Sandbox Code Playgroud)
这是我的Dockerfile
样子:
FROM reynierpm/centos7-supervisor
ENV TERM=xterm \
PATH="/root/.composer/vendor/bin:${PATH}" \
INSTALL_COMPOSER="false" \
COMPOSER_ALLOW_SUPERUSER=1 \
COMPOSER_ALLOW_XDEBUG=1 \
COMPOSER_DISABLE_XDEBUG_WARN=1 \
COMPOSER_HOME="/root/.composer" \ …
Run Code Online (Sandbox Code Playgroud) 我正在使用JörnZaefferer的优秀jquery.validation插件,我想知道是否有一种简单的方法可以在验证之前自动修剪表单元素?
以下是验证电子邮件地址的表格的简化但有效的示例:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"
type="text/javascript"></script>
<script src="http://ajax.microsoft.com/ajax/jquery.validate/1.5.5/jquery.validate.js"
type="text/javascript"></script>
<script type="text/javascript">
$().ready(function() {
$("#commentForm").validate({
rules: {
email: {
required: true,
email: true
}
}
});
});
</script>
</head>
<body>
<form class="cmxform" id="commentForm" method="get" action="">
<label for="cemail">E-Mail:</label><input id="cemail" name="email"
class="required email" />
<input class="submit" type="submit" value="Submit"/>
</form>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
问题是一些用户感到困惑,因为他们意外地在他们的电子邮件地址中输入了一些空格,例如"test@test.com".表单将不会提交并显示错误消息:"请输入有效的电子邮件地址.".非技术用户不知道如何发现空白,可能只是退出网站而不是试图弄清楚他们做错了什么.
无论如何,我希望我可以jQuery.trim(value)
在验证之前链接" ",这样就删除了空白并且验证错误永远不会发生?
我可以使用addMethod来构建我自己的电子邮件验证功能.但我确信有一个更优雅的解决方案?
我想修改库存JQuery UI滑块,以便手柄上有一个箭头而不是正方形.即我想使用自定义图像作为句柄.
有一些教程可以做到:
但我无法让它发挥作用.以下代码生成固定句柄图像:
<!DOCTYPE html>
<html>
<head>
<link type="text/css" href="http://jqueryui.com/latest/themes/base/ui.all.css" rel="stylesheet" />
<script type="text/javascript" src="http://jqueryui.com/latest/jquery-1.3.2.js"></script>
<script type="text/javascript" src="http://jqueryui.com/latest/ui/ui.core.js"></script>
<script type="text/javascript" src="http://jqueryui.com/latest/ui/ui.slider.js"></script>
<style type="text/css">
#myhandle {position: absolute;z-index: 100;height: 25px;width: 35px;top: auto;background: url(http://stackoverflow.com/content/img/so/vote-arrow-down.png) no-repeat;}
</style>
<script type="text/javascript">
$(document).ready(function(){
$("#slider").slider({handle: '#myhandle'});
});
</script>
</head>
<body>
<div id="slider"><div id="myhandle"></div></div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
就好像JQuery没有拿起我想要使用myhandle id作为句柄.我想知道:我是否需要一个JQuery插件来识别句柄选项?(它没有记录在http://docs.jquery.com/UI/Slider中).或许它只能在旧版本的JQuery中运行?
有任何想法吗?
我想知道我的dynamodb表中有多少项.从API指南中,一种方法是使用如下扫描:
<?php
$dynamodb = new AmazonDynamoDB();
$scan_response = $dynamodb->scan(array(
'TableName' => 'ProductCatalog'
));
echo "Total number of items: ".count($scan_response->body->Items)."\n";
Run Code Online (Sandbox Code Playgroud)
但是,这必须获取所有项目并将它们存储在内存中的数组中,这在我认为的大多数情况下是不可行的.有没有办法更有效地获得总项目数?
我已经检查过AWS Dynamo Web控制台中没有此数据.(起初看起来它显示在分页按钮旁边,但事实证明,当你转到下一页的项目时,数字会增长).
我正在使用Ubuntu 13.10(saucy salamander),我希望这sudo apt-get install php5-mongo
足以安装mongodb数据库驱动程序.
没有这样的运气.我正在使用php5-fpm,所以首先我发现我也需要做,php5enmod mongo
但即便如此,我收到一个错误:
include(MongoClient.php): failed to open stream: No such file or directory
Run Code Online (Sandbox Code Playgroud)
相反,要安装我必须执行以下操作(它使用更多的磁盘空间):
sudo apt-get install php5-dev make php-pear
sudo pecl install mongo
sudo echo "extension=mongo.so" | tee /etc/php5/mods-available/mongo.ini
Run Code Online (Sandbox Code Playgroud)
我的问题是为什么还 sudo apt-get install php5-mongo
不够?这是Ubuntu回购的问题吗?我如何查看ubuntu存储库并查找它使用的版本或未MongoClient.php
包含的原因.我正在使用" ubuntu:saucy
"泊坞窗图像作为我的基础,我认为它默认包含宇宙.
是否存在一种快速算法,可以在两个中找到最大公共子串,strings
还是一个NPComplete问题?
在PHP中,我可以在大海捞针中找到针:
<?php
if (strstr("there is a needle in a haystack", "needle")) {
echo "found<br>\n";
}
?>
Run Code Online (Sandbox Code Playgroud)
我想我可以在其中一个循环中做到这一点,strings
但这将是非常昂贵的!特别是因为我的应用是搜索电子邮件数据库并查找垃圾邮件(即同一个人发送的类似电子邮件).
有没有人有他们可以丢弃的PHP代码?
在PHP中,我想使用包含在字段/值对的关联数组中的数据插入到数据库中.
例:
$_fields = array('field1'=>'value1','field2'=>'value2','field3'=>'value3');
Run Code Online (Sandbox Code Playgroud)
生成的SQL插入应如下所示:
INSERT INTO table (field1,field2,field3) VALUES ('value1','value2','value3');
Run Code Online (Sandbox Code Playgroud)
我想出了以下PHP单行代码:
mysql_query("INSERT INTO table (".implode(',',array_keys($_fields)).") VALUES (".implode(',',array_values($_fields)).")");
Run Code Online (Sandbox Code Playgroud)
它分离关联数组的键和值,并implodes
生成逗号分隔的字符串.问题是它不会转义或引用插入数据库的值.为了说明危险,想象一下如果$_fields
包含以下内容:
$_fields = array('field1'=>"naustyvalue); drop table members; --");
Run Code Online (Sandbox Code Playgroud)
将生成以下SQL:
INSERT INTO table (field1) VALUES (naustyvalue); drop table members; --;
Run Code Online (Sandbox Code Playgroud)
幸运的是,不支持多个查询,但引用和转义对于防止SQL注入漏洞至关重要.
你如何编写PHP Mysql插件?
注意:PDO或mysqli的准备查询当前不适合我的选择,因为代码库已经使用广泛的MySQL - 改变计划,但它会采取很多资源的转换?
在我的capistrano配方中,我有一个具有不同任务的命名空间:
namespace :mystuff do task :mysetup do; ... end; task :mytask1 do; ... end; task :mytask2 do; ... end; task :mycleanup do; ... end; end
这些自定义任务是通过我的食谱顶部的这样的行触发的:
after "deploy", "mystuff:mycleanup"
Run Code Online (Sandbox Code Playgroud)
我想从命名空间内执行一个普通的capistrano任务.例如,如果已经建立了一定数量的版本文件夹,我想自动触发正常的清理任务:
task :mycleanup do;
if releases.length > 50
logger.info "Too many releases, runing deploy:cleanup."
deploy:cleanup #***THIS DOESN'T WORK***
end
end;
Run Code Online (Sandbox Code Playgroud)
不幸的是,调用deploy:cleanup
在我的命名空间内不起作用.我该怎么deploy:cleanup
办?
php ×4
jquery ×2
algorithm ×1
amazon-ec2 ×1
amazon-swf ×1
arguments ×1
capistrano ×1
cron ×1
deployment ×1
docker ×1
dockerfile ×1
html ×1
jquery-ui ×1
lamp ×1
mongodb ×1
performance ×1
ruby ×1
slider ×1
sql ×1
string ×1
ubuntu-13.10 ×1