I have a source text in a file and looking for a code that would take the second (or n-th - in general) row from this file and print to a seperate file.
Any idea how to do this?
如何将下面的代码中的PHP函数转换为非函数.
<?php
require_once ('./mysqli_connect.php'); // Connect to the db.
function make_list ($parent)
{
global $tasks;
echo '<ol>';
foreach ($parent as $task_id => $todo)
{
echo "<li>$todo";
if (isset($tasks[$task_id]))
{
make_list($tasks[$task_id]);
}
echo '</li>';
}
// Close the ordered list:
echo '</ol>';
}
$mysqli = new mysqli("localhost", "root", "", "sitename");
$dbc = mysqli_query($mysqli,"SELECT task_id, parent_id, task FROM tasks WHERE date_completed='0000-00-00 00:00:00' ORDER BY parent_id, date_added ASC");
if (!$dbc)
{
// There was an error...do something about it here...
print mysqli_error();
} …Run Code Online (Sandbox Code Playgroud) 我写了一个小的Perl脚本来从给定键名的JSON格式字符串中提取所有值(如下所示).因此,如果我将Perl脚本的命令行开关设置为id,那么它将从下面的JSON示例返回1,2和stringVal.这个脚本完成了这项工作,但我想看看其他人如何使用其他unix样式工具(如awk,sed或perl本身)来解决同样的问题.谢谢
{
"id":"1",
"key2":"blah"
},
{
"id":"2",
"key9":"more blah"
},
{
"id":"stringVal",
"anotherKey":"even more blah"
}
Run Code Online (Sandbox Code Playgroud)
摘录提取JSON值的perl脚本:
my @values;
while(<STDIN>) {
chomp;
s/\s+//g; # Remove spaces
s/"//g; # Remove quotes
push @values, /$opt_s:([\w]+),?/g; # $opt_s is a command line switch for the key to find
}
print join("\n",@values);
Run Code Online (Sandbox Code Playgroud) 考虑以下输入:
<Foo
Bar="bar"
Baz="1"
Bax="bax"
>
Run Code Online (Sandbox Code Playgroud)
处理完毕后,我需要它看起来如下所示:
<Foo
Bar="bar"
Baz="1"
Bax="bax"
CustomAttribute="TRUE"
>
Run Code Online (Sandbox Code Playgroud)
这是所有我需要的时间不超过5个文件做的,所以使用以外的任何其他正则表达式似乎有点小题大做.无论如何,我想出了以下(Perl)正则表达式来完成这个:
$data =~ s/(<\s*Foo)(.*?)>/$1$2 CustomAttribute="TRUE">/sig;
Run Code Online (Sandbox Code Playgroud)
这很好,但是,有一个明显的问题.这种模式是"愚蠢的",因为如果CustomAttribute已经添加,上面概述的操作将简单地附加另一个CustomAttribute=....
当然,一个简单的解决方案是编写一个辅助表达式,它将CustomAttribute在运行替换操作之前尝试匹配.
因为我对脚本语言和正则表达式世界都很陌生,所以我想知道是否有可能在不引入任何宿主语言结构(即Perl中的if语句)的情况下解决这个问题,并且只是使用更"智能" "我上面写的版本?
我正在尝试读出从页面中的表单发送到我的Perl脚本的POST数据.我用Google搜索并发现:
read(STDIN, $param_string, $ENV{'CONTENT_LENGTH'})
Run Code Online (Sandbox Code Playgroud)
读取整个Data-String,并以.的形式将整个字符串写入$ param_string
Param1=Value1&Param2=Value2&Param3=Value3
Run Code Online (Sandbox Code Playgroud)
通过将它拆分到正确的位置,我得到了必要的数据.
但我想知道为什么我的$ param_string是空的.
当我用GET尝试整个事情时:
$param_string = $ENV{'QUERY_STRING'};
Run Code Online (Sandbox Code Playgroud)
一切正常.有人有想法吗?
int main(void) {
problem2();
}
void doit2(void) {
int overflowme[16];
//overflowme[37] =0;
}
void problem2(void) {
int x = 42;
doit2();
printf("x is %d\n", x);
printf("the address of x is 0x%x\n", &x);
}
Run Code Online (Sandbox Code Playgroud)
有人会帮我理解为什么溢出[37] = 0; 从doit2函数将覆盖x的值?(请在说明中包含函数doit2的程序计数器和帧指针)谢谢!
它每次都在x86 windows机器上工作(好吧!),项目属性 - >配置属性 - > C/C++ - >代码生成 - >基本运行时检查设置为"默认".所以这不是一个未定义的行为.
在Windows服务器上使用perl 5.8.8我正在编写一个perl cgi脚本,使用Archive :: Zip来创建一个必须由用户下载的zip:这方面没有问题.zip在内存中管理,没有物理文件使用临时文件或其他任何内容写入磁盘.我想知道如何允许zip下载将流写入浏览器.我做的是这样的:
binmode (STDOUT);
$zip->writeToFileHandle(*STDOUT, 0);
Run Code Online (Sandbox Code Playgroud)
但我觉得这种方式不安全,将STDOUT作为文件句柄.它是否正确且稳健?有一个更好的方法?
非常感谢您的建议