小编tpk*_*tpk的帖子

带引号的bash正则表达式?

以下代码

number=1
if [[ $number =~ [0-9] ]]
then
  echo matched
fi
Run Code Online (Sandbox Code Playgroud)

作品.但是,如果我尝试在正则表达式中使用引号,它会停止:

number=1
if [[ $number =~ "[0-9]" ]]
then
  echo matched
fi
Run Code Online (Sandbox Code Playgroud)

我也试过"\[0-9\]"了.我错过了什么?

有趣的是,bash高级脚本指南表明这应该有效.

Bash版本3.2.39.

regex bash quotes

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

在php中获取锁定的最佳方法

我正在尝试更新APC中的变量,并且将尝试执行此操作的许多进程.

APC不提供锁定功能,所以我正在考虑使用其他机制......到目前为止我发现的是mysql的GET_LOCK()和php的flock().还有什么值得考虑的吗?

更新:我找到了sem_acquire,但它似乎是一个阻塞锁.

php locking apc

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

onchange而不失焦点?

我正在创建一个带有选择下拉列表的表单.其中一个选项是"其他 - 请指定",它应该显示一个额外的文本字段以获取更多详细信息.

我设法使用onChange事件+一些简单的值检查(因为我不能依赖于位置).

我开始测试它并意识到虽然它在使用鼠标时工作得很好(在控制失去焦点后运行onChange),但是当我使用键盘时它没有(因为它还没有失去焦点) - 只有在我按下之后选项卡显示更改(看起来很奇怪).

在我看来,我似乎错过了一些明显的东西,我寻找其他事件,而我发现的最接近的是onclick,但那也不是.

所以问题是,有没有更好的方法来解决这个问题?

javascript focus onchange

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

mysql插入竞争条件

你如何在MySQL中阻止竞争条件?手头的问题是由一个简单的算法引起的:

  1. 从表中选择一行
  2. 如果它不存在,请插入它

然后要么获得重复的行,要么通过唯一/主键阻止它,这是一个错误.

现在通常我认为事务在这里有帮助,但因为行不存在,事务实际上没有帮助(或者我错过了什么?).

LOCK TABLE听起来有点过分,特别是如果表每秒更新多次.

我能想到的唯一其他解决方案是GET_LOCK()用于每个不同的id,但是没有更好的方法吗?这里也没有可扩展性问题吗?而且,为每个表执行此操作听起来有点不自然,因为它听起来像是高并发数据库中一个非常常见的问题.

mysql locking transactions race-condition

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

__autoload的最佳解决方案

随着我们的PHP5 OO应用程序的增长(在大小和流量方面),我们决定重新审视__autoload()策略.

我们总是按照它包含的类定义来命名文件,因此Customer类将包含在Customer.php中.我们曾经列出了文件可能存在的目录,直到找到正确的.php文件.

这是非常低效的,因为您可能会经历许多您不需要的目录,并且每次请求都会这样做(因此,需要加载stat()调用).

我想到的解决方案......

- 使用指定目录名称的命名约定(类似于PEAR).缺点:不规模太大,导致类名可怕.

- 使用某种预先建立的位置阵列(推进它为__autoload做这个).缺点:在部署新代码之前需要重建.

- "动态"构建数组并缓存它.这似乎是最好的解决方案,因为它允许您想要的任何类名和目录结构,并且完全灵活,因为新文件只是添加到列表中.关注点是:存储它的位置以及删除/移动的文件.对于存储,我们选择了APC,因为它没有磁盘I/O开销.关于文件删除,没关系,因为你可能不想在任何地方要求它们.至于移动......那是没有解决的(我们忽略它,因为历史上它并不经常发生在我们身上).

还有其他方法吗?

php oop autoload

10
推荐指数
1
解决办法
1375
查看次数

如何查看db2表(文件)的模式

就像在主题...有没有一种方法来查看空表架构而不插入任何行并发出SELECT?

db2 schema file

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

php + unixODBC + DB2 + DESCRIBE =令牌无效?

代码我正在尝试运行:

$query = "DESCRIBE TABLE TABLENAME";
$result = odbc_exec($h, $query);
Run Code Online (Sandbox Code Playgroud)

结果:

PHP警告:odbc_exec():SQL错误:[unixODBC] [IBM] [iSeries Access ODBC驱动程序] [DB2 UDB] SQL0104 - 令牌TABLENAME无效.有效令牌:INTO.,SQLExecDirect中的SQL状态37000 ...

在同一连接上,SELECT,INSERT,UPDATE或DELETE查询没有其他问题.这是语法错误吗?

php db2 unixodbc db2-400 ibm-midrange

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

在多列中显示已排序的数据

假设我试图在两列中显示所有美国州,按字母顺序排序.从可用性的角度来看哪种方法更好?

它是水平排序,如:

Alabama  | Alaska
Arizona  | Arkansas 
Colorado | Connecticut
Delaware | Georgia
Run Code Online (Sandbox Code Playgroud)

或者它是垂直的,如:

Alabama  | Montana 
Alaska   | Nebraska
Arizona  | New Hampshire
Arkansas | New Jersey
Run Code Online (Sandbox Code Playgroud)

我尝试使用谷歌搜索获得一些测试支持的权威答案,但我发现的只是意见.

这只是个人偏好的事情,没有选择比另一个更好吗?

usability user-interface

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