小编pwa*_*ing的帖子

仅将CSS样式应用于某些元素

我有一个现有的网站,其中包含许多旧页面和表格,我正在尝试逐步过渡到CSS.我想使用Twitter Bootstrap样式表 - 特别是表单的样式 - 但仅限于我明确请求它们的页面部分.例如,我可能会在div中包围整个表单,如下所示:

<div class="bootstrap">
 <!-- everything in here should have the Bootstrap CSS applied -->
 <form>
   <p><label for="text_input">Label</label><input type="text" id="text_input" /></p>
 </form>
</div>
Run Code Online (Sandbox Code Playgroud)

我希望所有其他形式保持与现在相同,因为我无法同时更改所有形式.有一个简单的方法吗?我可以浏览Bootstrap CSS中的每一个样式并添加一个父选择器(例如'p'将成为'div.bootstrap p'),但这需要很长时间,并且很容易错过样式.

编辑:如果这样的事情不可能,有没有一个免费工具可以从文件中提取所有样式,添加前缀,然后再将它们保存回来?

css twitter-bootstrap

58
推荐指数
4
解决办法
3万
查看次数

在Twitter Bootstrap 2.0中排列标签和只读文本

我有一个包含可编辑和只读字段的表单,我希望使用Bootstrap进行样式设置.可编辑字段已正确对齐,但只读字段不正确,如此屏幕截图所示:

只读字段

我正在使用的HTML是:

<form class="form-horizontal">
<div class="control-group">
  <label class="control-label">Name</label>
  <div class="controls">
    John Smith
  </div>
</div>
<div class="control-group">
  <label class="control-label" for="date_of_birth">Date of Birth</label>
  <div class="controls">
    <input name="date_of_birth" id="date_of_birth" size="16" type="text" value="" />
    <span class="help-inline">dd/mm/yyyy</span>
  </div>
</div>
</form>
Run Code Online (Sandbox Code Playgroud)

我不想为无法编辑的字段显示只读输入,因为当用户无法在框中单击时会感到困惑/沮丧,这些是永远无法编辑的字段,因此它不会将它们显示为禁用/只读是非常有意义的.我只想要显示文本并与标签正确对齐.有没有办法可以通过在Bootstrap中使用某些东西或覆盖默认样式来实现这一点?

我的问题类似于这个问题,但没有回答(至少没有回答原问题),而且Bootstrap在过去的7个月里有多次发布,我认为如果发生任何变化,我将再次提出要求.

twitter-bootstrap

46
推荐指数
2
解决办法
4万
查看次数

使用JAXB编组LocalDate

我正在构建一系列链接类,其实例我希望能够编组为XML,因此我可以将它们保存到文件中,稍后再读取它们.

目前我使用以下代码作为测试用例:

import javax.xml.bind.annotation.*;

import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Marshaller;

import java.time.LocalDate;

public class LocalDateExample
{
  @XmlRootElement
  private static class WrapperTest {
    public LocalDate startDate;
  }

  public static void main(String[] args) throws JAXBException
  {
    WrapperTest wt = new WrapperTest();
    LocalDate ld = LocalDate.of(2016, 3, 1);
    wt.startDate = ld;
    marshall(wt);
  }

  public static void marshall(Object jaxbObject) throws JAXBException
  {
    JAXBContext context = JAXBContext.newInstance(jaxbObject.getClass());
    Marshaller marshaller = context.createMarshaller();
    marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);
    marshaller.marshal(jaxbObject, System.out);
  }
}
Run Code Online (Sandbox Code Playgroud)

XML输出是:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<wrapperTest>
    <startDate/>
</wrapperTest> …
Run Code Online (Sandbox Code Playgroud)

java xml jaxb

17
推荐指数
2
解决办法
1万
查看次数

升级local :: lib安装的所有模块

我一直在使用local :: lib来处理服务器上Perl模块的安装,这样我就可以在不污染系统安装的情况下为一些开发工作获得正确的版本.

但是,系统管理员最近将Perl从5.16升级到5.18,我现在遇到与二进制模块有关的错误,例如

perl -e 'use Scalar::Util'
Perl API version v5.16.0 of List::Util does not match v5.18.0 at /usr/lib64/perl5/5.18.2/XSLoader.pm line 92.
Compilation failed in require at /home/paul/perl5/lib/perl5/x86_64-linux/Scalar/Util.pm line 11.
Compilation failed in require at -e line 1.
BEGIN failed--compilation aborted at -e line 1.
Run Code Online (Sandbox Code Playgroud)

我的理解是我可以通过强制local :: lib来重建它的所有模块来修复这个问题,但我在文档中找不到任何告诉我如何做到这一点的内容,甚至找不到如何获取所有模块的列表.使用local :: lib安装的模块(如果我在"每行一个模块"文本文件中有这个模块,我可以轻松编写一个Bash脚本来处理它).

这是可能的,还是我必须删除〜/ perl5目录并从头开始重新安装所有模块(可能会遗漏一些,因为我不记得它们全部)?

perl locallib

13
推荐指数
2
解决办法
1339
查看次数

使用GCC交叉编译器时对printf的未定义引用

我正在尝试使用交叉编译器(GCC 4.9.2)进行以下简单的"Hello World"程序编译mips:

#include <stdio.h>

int main()
{
  int x = 5;
  printf("x = %d\n", x);
}
Run Code Online (Sandbox Code Playgroud)

x变量用于阻止GCC更改printfputs,它似乎自动为一个简单的换行终止字符串.

我已经构建了一个交叉编译器${HOME}/xc并使用以下命令执行它:

${HOME}/xc/bin/mips-gcc -v hello.c
Run Code Online (Sandbox Code Playgroud)

但是,我收到以下错误:

/tmp/ccW5mHJu.o: In function `main':
(.text+0x24): undefined reference to `printf'
collect2: error: ld returned 1 exit status
Run Code Online (Sandbox Code Playgroud)

我假设这是链接器的一个问题,因为我希望该进程先前失败,例如stdio.h在搜索路径上找不到.我可以编译一个简单的程序,只返回零,所以不是整个工具链被破坏的情况,大概只是标准的库链接(我使用的是newlib 2.2.0-1).

无论我是在Linux(Ubuntu 14.10)还是Cygwin(Windows 8)下运行交叉编译器,我都会得到同样的错误.

海湾合作委员会的全部产出是:

Using built-in specs.
COLLECT_GCC=/home/paul/xc/bin/mips-gcc
COLLECT_LTO_WRAPPER=/home/paul/xc/libexec/gcc/mips/4.9.2/lto-wrapper
Target: mips
Configured with: /home/paul/xc/mips/tmp/gcc-4.9.2/configure --prefix=/home/paul/xc --target=mips --enable-languages=c --with-newlib --without-isl --without-cloogs --disable-threads --disable-libssp --disable-libgomp --disable-libmudflap
Thread model: single …
Run Code Online (Sandbox Code Playgroud)

c gcc mips cross-compiling undefined-reference

13
推荐指数
1
解决办法
3万
查看次数

C#REST客户端使用POST发送数据

我正在尝试向REST Web服务发送一个简单的POST请求并打印响应(代码如下,主要来自Yahoo!开发人员文档和一些文档提供的MSDN代码片段).我希望客户发送:

请求方法:POST(即我希望PHP中的$ _SERVER ['REQUEST_METHOD'] =='POST')
数据:foo = bar(即PHP中的$ _POST ['foo'] =='bar')

但是,它似乎在发送:

请求方法:FOO = BARPOST
数据:(空白)

我知道API工作正如我用Python和PHP编写的客户端测试的那样,所以我很确定它一定是我的C#的问题.我不是一个交易的.NET程序员,所以会很感激任何关于如何弄清楚问题是什么的评论/指示 - 我确定这是微不足道的但我自己无法发现它.

uri,用户和密码变量在代码中设置得更早 - 它们可以正常使用GET请求.

request = (HttpWebRequest) WebRequest.Create(uri);
request.Credentials = new NetworkCredential(user, password);
request.Method = WebRequestMethods.Http.Post;
request.ContentType = "application/x-www-form-urlencoded";

string postData = "foo=bar";
request.ContentLength = postData.Length;

StreamWriter postStream = new StreamWriter(request.GetRequestStream(), System.Text.Encoding.ASCII);
postStream.Write(postData);
postStream.Close();

response = (HttpWebResponse) request.GetResponse();
Run Code Online (Sandbox Code Playgroud)

REST API是用PHP编写的,当使用C#客户端时,$ _POST数组在服务器上是空的.

c# rest http

7
推荐指数
1
解决办法
2万
查看次数

PHP会话提前到期

我在工作中运行的PHP站点出现问题,几分钟后用户正在注销(确切的时间有所不同,但它经常出现问题),无论他们是否积极使用该站点或不.

困难在于我无法重现这个问题,如果我使用相同的浏览器登录我不会被注销,这表明这不是网站完全被破坏的情况.不幸的是,我无法访问用户计算机来运行任何流量嗅探软件.

我已经检查的东西是:

  • 要求用户尝试不同的浏览器.这似乎并没有解决问题,也不是一个长期的解决方案,因为我无法决定客户将使用哪些浏览器.
  • 服务器时间正确且与用户计算机一致.
  • 用户Apache运行时有权写入会话文件夹,我可以看到正在创建的会话文件及其修改时间正在更新.
  • 没有使用输出缓冲功能.
  • 这个问题发生在各种各样的页面上,似乎没有任何共同之处(也就是说,并不是说它们都使用AJAX,或者更新数据库或其他原因).
  • 用户只能从一台机器上访问他们的帐户,即他们不会在他们的笔记本电脑上做一些工作,切换到桌面,然后想知道为什么他们已经在他们的笔记本电脑上注销了(我们不允许多个同时登录同一个用户).

PHP中的会话设置是Debian默认值,并且未在.htaccess文件或其他任何位置更改.主要是:

session.cookie_lifetime    0
session.gc_divisor    100
session.gc_maxlifetime    1440
session.gc_probability    0
session.save_handler    files
session.save_path    /var/lib/php5
session.use_cookies    On
Run Code Online (Sandbox Code Playgroud)

Debian通过cron作业删除会话,而不是使用PHP的垃圾收集器,这就是为什么gc_probability被设置为0.我们运行的PHP版本是:PHP 5.2.6-1 + lenny13与Suhosin-Patch 0.9.6.2(cli) (Lenny的最新版本,我们很快就会升级到Squeeze,但我不认为这是导致问题的原因).

我们使用Zend_Session来管理会话,并在每个页面上创建一次Zend_Session_Namespace实例,从而自动调用session_start().通过在注销页面上调用Zend_Session :: destroy()来清除会话,因此用户应该注销的唯一方法是:

  • 如果他们明确地点击了注销链接(我们会在发生这种情况时进行记录,并且似乎不会出现浏览预先获取页面并因此将用户注销的情况).
  • 如果他们让会话处于非活动状态超过24分钟,那么Debian可能会删除他们的会话(有一个cron作业每半小时运行一次,删除所有未经修改超过24分钟的会话).
  • 如果他们关闭浏览器,将删除其到期时间为0的会话cookie.

查看用户是否已登录的检查包括:

  • 他们有一个有效的会话(通过查看我们是否可以访问$ zsession-> user_id来检查).
  • 会话表中有一行具有匹配的用户ID和会话ID,这是在不到一小时前最后更新的.我们在注销时删除了这一行,这样即使会话仍然存在于磁盘上,也没有人可以在不登录的情况下访问该帐户.

任何人都可以建议我可以试试的其他事情

编辑:我根据评论留下的一些额外的事情:

  • 设置session.cookie_domain:这似乎在PHP中有非常奇怪的行为.如果我没有设置此变量并将其保留为默认值''(空字符串),则对www.domain.com的请求将生成www.domain.com的cookie.但是,如果我将cookie_domain设置为"www.domain.com",则cookie的域名为".www.domain.com"(注意引导点,这意味着对www.domain.com以下的所有内容都有效,例如subsite.www .domain.com).
  • 设置session.cookie_lifetime:PHP似乎没有更新每个请求的到期时间,因此如果我将cookie_lifetime设置为3600,cookie将在用户首次访问网站一小时后到期,即使他们登录并经常使用它.

编辑2:基于人们提出的其他问题:

  • 该站点托管在数据中心的单独VLAN中.访问该站点的任何人都不在该站点的同一网络上.
  • 没有使用IP身份验证,也不会在会话过程的任何部分使用客户端的IP地址(例如,如果用户的下一个请求来自不同的IP,我们不会将会话附加到IP地址并阻止用户) .

php session

7
推荐指数
1
解决办法
4779
查看次数

使用模糊匹配搜索单个 MySQL 文本列

我有一个带有“名称”列 (VARCHAR(255)) 的 MySQL InnoDB 表,我希望用户能够搜索它,返回所有匹配的行。但是,我不能只使用 LIKE 查询,因为搜索需要允许用户输入与可用名称相似的名称(例如,以“The”为前缀,或者不知道正确的名称包含撇号)。

两个例子是:

DB 中的名称:'Rose and Crown'

应该匹配的可能搜索示例:“Rose & Crown”、“Rose and Crown”、“rose and Crown”、“The Rose and Crown”

DB 中的名称:'Diver's Inn'

应该匹配的可能搜索示例:'Divers' Inn'、'The Diver's Inn'、'Divers Inn'

我还希望能够通过“最接近的匹配”相关性对结果进行排名,尽管我不确定如何做到这一点(也许是编辑距离?)。

该表不太可能超过几千行,因此不扩展到数百万行的方法是好的。一旦输入,给定行的名称值将不会改变,因此如果需要昂贵的索引操作,那不是问题。

是否有可以执行此任务的现有工具?我看过 Zend_Search_Lucence 但它似乎专注于文档,而我只对搜索单个列感兴趣。

编辑:在 SOUNDEX 搜索中,这不会产生我想要的结果。例如:

SELECT soundex( 'the rose & crown' ) AS soundex1, soundex( 'rose and crown' ) AS soundex2;
soundex1    soundex2
T6265   R253265
Run Code Online (Sandbox Code Playgroud)

解决方案:最后我使用了 Zend_Search_Lucence ,只是假装每个名字实际上都是一个文档,这似乎达到了我想要的结果。我猜它在某种程度上是全文搜索,即使每个字符串最多只有 3-4 个单词。

php mysql sql search

5
推荐指数
1
解决办法
1万
查看次数

海湾合作委员会的变化小于或等于

我有以下简单的程序,我正在使用它来刷新我对GDB的记忆(我多年没有触及).

#include <stdio.h>

int main()
{
  int i;

  for (i = 0; i < 10; i++)
  {
    printf("Hello World\n");
  }

  return 0;
}
Run Code Online (Sandbox Code Playgroud)

我用它编译gcc -g for-test.c -o for-test.基于手册页,我不希望使用任何优化,因为我没有指定任何优化.

当我将其加载到GDB并运行时disassemble main,i < 10比较生成以下内容:

cmp    DWORD PTR [rbp-0x4],0x9
jle    0x4004fe <main+10>
Run Code Online (Sandbox Code Playgroud)

这似乎已经有效地改变的比较i < 10i <= 9.鉴于这些是整数比较,应该没有区别,但我想知道GCC是否有任何理由输出这个程序集,而不是与10进行比较并且如果小于(JL)则跳跃?

编辑:这是在具有64位处理器的计算机上,运行Ubuntu与GCC 4.6.3和GDB 7.4-2012.04.

c assembly gcc gdb

5
推荐指数
1
解决办法
216
查看次数

在Twig中过滤和拼接数组

我有一组用户记录(0索引,来自数据库查询),每个记录包含一个字段数组(按字段名称索引).例如:

Array
(
    [0] => Array
        (
            [name] => Fred
            [age] => 42
        )

    [1] => Array
        (
            [name] => Alice
            [age] => 42
        )

    [2] => Array
        (
            [name] => Eve
            [age] => 24
        )

)
Run Code Online (Sandbox Code Playgroud)

在我的Twig模板中,我希望获得age字段为42的所有用户,然后将name这些用户的字段作为数组返回.然后,我可以传递该数组,join(<br>)以便每行打印一个名称.

例如,如果年龄为42岁,我会期望Twig输出:

Fred<br>
Alice
Run Code Online (Sandbox Code Playgroud)

这可以在Twig开箱即用,还是我需要编写自定义过滤器?我不确定如何用几个词来描述我想要的东西,所以可能是其他人写了一个过滤器,但我找不到它通过搜索.

php arrays twig silex

5
推荐指数
3
解决办法
9491
查看次数

当复选框更改时,jQuery重新验证文本字段

我有一个包含以下两个HTML元素的表单:

<input type="text" name="vrm" id="vrm" size="15" maxlength="15" value="" />
<input type="checkbox" id="foreign_registration" name="foreign_registration" value="yes" />
Run Code Online (Sandbox Code Playgroud)

和以下jQuery验证规则(使用此处的验证插件:http://bassistance.de/jquery-plugins/jquery-plugin-validation/):

vrm: {
       remote: {
            url: "/json/vrm-validate.php",
            data: {
              foreign_registration: function() {
                return $('#foreign_registration').is(':checked');
              }
            }
          }
        }
Run Code Online (Sandbox Code Playgroud)

远程脚本依赖于这两个字段,因为在文本字段上执行的验证取决于是否检查了外部注册.

问题是,如果我在文本字段中输入内容然后更改复选框,则不会重新运行验证规则.我认为这是因为验证规则仅附加到文本字段,因此只有在更改时它才会运行.

有没有办法说'这两个元素是相关的,所以如果它们中的任何一个改变假设应该再次检查文本字段规则'?我不想将任何验证规则附加到复选框,因为它不需要在客户端验证,并且远程脚本执行的验证规则太复杂,无法在jQuery中实现.

jquery jquery-plugins jquery-validate

4
推荐指数
1
解决办法
6564
查看次数

填充数据库中的PDF字段

我有一个PDF文件(不是由我创建的 - 我无法控制设计等),它允许用户在Adobe Reader中填写一些表单字段并保存结果.我想使用以下步骤自动化填充字段的过程:

  1. 从数据库中获取数据.
  2. 打开PDF模板.
  3. 使用数据填充表单字段.
  4. 将修改后的文件保存到磁盘上的单独位置.
  5. 锁定已修改的文件,以便无法再编辑表单域.
  6. 将文件发送给用户.

我很高兴使用PHP,Perl,Python或Java来执行步骤2-5(按优先级降序排列),但我使用的任何东西都必须在Linux下工作(即它不能依赖于仅在例如Windows).

最终的结果应是普通用户可以打开和打印,但不能修改(我敢肯定,高级用户可以找到一种方法,这样做,但我承认,我不能保证对修改完善的安全)的PDF文件.我不想改变PDF的结构,只是填充表单字段.

这样做有标准的软件吗?我已经看过FDF Toolkit的提及,但我不完全确定这是否是我想要的,以及它是否允许我之后锁定文件,以及我想做的是否适合EULA.

编辑:最后的答案是使用iText的(由Mark斯托勒的建议),但实现它作为一个Web服务,它允许你在表单字段名称和值和PDF文件的"样板"的数组通过.根据AGPL,Web服务将是开源的(并且在我编写之后可以在GitHub上获得),但是连接到它的任何东西都不一定是.

pdf

3
推荐指数
1
解决办法
5581
查看次数

使用jQuery重新编号文本输入数组索引

我有以下HTML块,用于从用户收集有关项目的信息作为表单的一部分:

<div class="clone_block">
  Name: <input type="text" name="items[0][name]" /><br />
  Amount: <input type="text" name="items[0][amount]" /><br />
  <button class="delete">Delete</button>
</div>
Run Code Online (Sandbox Code Playgroud)

我可以克隆这个元素(如果用户想要添加另一个项目)并将它div.clone_block放在DOM 的最后一个实例之后,一切正常,我也可以删除元素.但是,我最终得到了具有相同名称的多个文本输入实例,这意味着只有最后一个显示在POST请求中(之前的请求被覆盖).我想要做的是重新编号所有项目,以便第一个item[0],第二个是item[1]等.

有没有办法在jQuery中执行此操作?以这种方式创建名称可以更容易地使用PHP处理POST数据,因此我不希望在可能的情况下更改命名方案.

forms jquery

3
推荐指数
2
解决办法
4896
查看次数