我正在使用regexps +一些手动解析在Java中解析一个相对复杂的表达式.我现在正在做的是删除我已经从字符串中解析的内容,所以我接下来要在字符串的开头解析.
我想改变这个,所以我有一个int pos变量,我不修改字符串.但是,类Pattern和Matcher类似乎都没有标记要匹配的第一个字符的索引.有什么办法吗?
(我知道我可以传递str.substring(pos)给它Matcher,但我想它会更昂贵,并且使我的代码变得复杂一点,因为我经常使用start()和end()方法).
我有以下MySQL查询:
<?php
$sql = "SELECT * FROM my_table";
$result = mysql_db_query($DBname,$sql,$link) or die(mysql_error());
$rows = array();
while($r = mysql_fetch_assoc($result)) {
$rows[] = $r;
}
print json_encode($rows);
?>
Run Code Online (Sandbox Code Playgroud)
其中输出以下JSON格式:
[
{
"id":"100",
"due_date":"2010-08-24 10:00:36"
}
]
Run Code Online (Sandbox Code Playgroud)
我的问题是:在我的MySQL查询中,我如何能够首先转换/修改一行(在本例中为日期),或者更确切地说,我将如何修改当前查询,使用类似于:
$date = strtotime($r['due_date']);
$new_date = date('j M', $date);
Run Code Online (Sandbox Code Playgroud)
然后JSON对结果进行编码,然后返回:
[
{
"id":"100",
"due_date":"24 Aug"
}
]
Run Code Online (Sandbox Code Playgroud) yii框架中是否有任何机制来翻译javascript源文件中的消息.
例如:
yiic message config-message.php
Run Code Online (Sandbox Code Playgroud)
我可以为所有Yii :: t()生成翻译.php文件.
是否可以使用相同的机制生成.js文件.目前我已经将我的javascript json数据包含在翻译文件返回的表中.
我正在使用我创建的配置文件来存储用户.这肯定不是用于配置的配置,但它是一个非常小的应用程序,我认为这将是一个很好的解决方案.
我的数组看起来像这样:
$config['users'] = array(array('username' => 'username', 'password' => 'password'));
Run Code Online (Sandbox Code Playgroud)
这很好用.我可以快速轻松地检索信息.但是,如果我尝试将新数组(新用户)写入配置文件,我会收到此错误:isset中的非法偏移类型或为空
我正在使用$this->config->item('users', array('username' =>....))哪个似乎不支持数组.
如何将数组写入配置变量?还有另外一种方法吗?
编辑:好的,由于phirschy给出的答案,错误是固定的.我非常确定我可以使用config-> item(),我没有检查手册中的config-> set_item()......但是,它仍然不起作用.这是具体的代码:
$users = $this->config->item('users');
array_push($users, array('username' => $this->input->post('username'), 'password' => $this->input->post('password')));
$this->config->set_item('users', json_encode($users));
echo json_encode($users);
Run Code Online (Sandbox Code Playgroud)
这段代码是通过Ajax调用的,我有一个警告框,看看它是否正确.他们是.正如你所看到的,我已经尝试将它存储为json而不是数组....但这也不起作用.请帮忙?
谢谢
我正在考虑使用带有ConcurrentDictionary实现的集合的类(单例).该类将用作缓存实现(asp.net/wcf).
您如何从这样的类中明确地公开这些集合,而只是为每个集合公开3个方法(获取,添加,清除)(使用CD中的安全方法)?
我把我的问题提炼到这个代码片段 - 但它是一个更大的程序的一部分,所以我不想要一个不同的方式来做到这一点 - 我需要一种方法来使这项工作!
当我从这段代码生成预处理文件时:
#define OUTER(a, b) \
a##b
#define INNER(c, d) \
c##d
enum foo {
OUTER(INNER(x, y), z)
}; // line 108
int APIENTRY _tWinMain(...)
{
foo bar = xyz; // line 112
}
Run Code Online (Sandbox Code Playgroud)
我明白了:
enum foo {
xyz
}; // line 108
int __stdcall wWinMain(...)
{
foo bar = xyz; // line 112
}
Run Code Online (Sandbox Code Playgroud)
这就是我想要的.但是,如果我尝试编译代码,我得到:
错误C2146:语法错误:在标识符'z'之前缺少'}'第108行
错误C2143:语法错误:缺少';' 在'}'第108行之前
错误C2143:语法错误:缺少';' 在'}'第108行之前
错误C2059:语法错误:'}'第108行
错误C2065:'xyz':未声明的标识符行112
我无法解决这个问题!问题似乎是由于##:
#define OUTER(a, b) \
a##b
Run Code Online (Sandbox Code Playgroud)
但是为什么(以及如何解决它)超出了我......
我发现以下代码被Visual C++ 2008和GCC 4.3编译器接受:
void foo()
{
}
void bar()
{
return foo();
}
Run Code Online (Sandbox Code Playgroud)
它编译时我有点惊讶.这是语言功能还是编译器中的错误?C/C++标准对此有何看法?
我有一个下面的函数,我经常在循环中调用它.
随着内存从1MB上升到156MB,我等了5分钟.PHP的garabage收集器不应该出现并在某些时候减少这个吗?!
是因为我将内存限制设置为256MB?
在回波点2,3,4,它的内存使用量相当不变.它在第4点下降了半个兆位.但第1点是主内存增加发生的地方.可能是因为file_get_html在内存中加载了html文件.
我虽然变量的明确和未设置$html会解决这个问题吗?
function get_stuff($link, $category ){
$html = file_get_html(trim("$link"));
$article = $html->find('div[class=searchresultsWidget]', 0);
echo '1 - > '.convert(memory_get_usage(true)).'<br />';
foreach($article->find('h4 a') as $link){
$next_url = 'http://new.mysite.com'.$link->href;
$font_name = trim($link->plaintext);
$html = file_get_html(trim("$next_url"));
$article = $html->find('form[class=addtags]', 0);
$font_tags = '';
foreach($article->find('ul[class=everyone_tags] li a span') as $link){
$font_tags .= trim($link->innertext).',';
}
echo '2 - > '.convert(memory_get_usage(true)).'<br />';
$font_name = mysql_real_escape_string($font_name);
$category = mysql_real_escape_string($category);
$font_tags = mysql_real_escape_string($font_tags);
$sql = "INSERT INTO tag_data (font_name, category, tags) VALUES …Run Code Online (Sandbox Code Playgroud) 以下C程序的预期输出是打印数组元素.但是当实际运行时,它不会这样做.
#include<stdio.h>
#define TOTAL_ELEMENTS (sizeof(array) / sizeof(array[0]))
int array[] = {23,34,12,17,204,99,16};
int main()
{
int d;
for(d=-1;d <= (TOTAL_ELEMENTS-2);d++)
printf("%d\n",array[d+1]);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
是什么原因 ?
在编译时,如何才能将stdlib(mscorlib.dll)包含到我的C#应用程序中?据我所知,所有类都继承System.Object类,该类在mscorlib.dll中定义.更重要的是 - 诸如int之类的类型只是例如System.Int32的别名,它们也在mscorlib中定义.这个选项曾经使用过吗?