小编Lia*_*ell的帖子

PHP:检查数组键是否有值

我有以下数组($post_options),它可以以各种形式出现,关键是动态的:

它可能是这样的:

array(1){[95] => string(2)"25"}

它可能是这样的,关键可以是任何东西:

array(1){[05] => string(2)""}

我想添加一个控制语句来控制第一个键元素中的值是否有值.

我有这个代码:

if (!isset($post_options[0])) {
            // value is empty
            var_dump($post_options);
        }
        else {
            // value has value
            echo 'Option Selected';
        }
Run Code Online (Sandbox Code Playgroud)

但这不起作用,当设置值而未设置时,它返回true.这里有什么解决方案?谢谢

因此,如果数组看起来像这样(第一个键的值为空):

array(1){[05] => string(2)""}

我想var_dump();在这种情况下

php arrays

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

PHP:将 MYSQL 查询写入 CSV

我正在尝试将 MySQLi 查询写入可下载的 CSV。以下标头为 CSV 打开一个流:

$fileName = ''; //empty file name, file name is cast later
header("Cache=Control: must-revalidate, post-check=0, pre-check=0");
header('Content-Description: File Transfer');
header("Content-type: text/csv");
header("Content-Disposition: attachment; filename={$fileName}");
header("Expires: 0");
header("Pragma: public");
$fh = @fopen( 'php://output', 'w' );
Run Code Online (Sandbox Code Playgroud)

在此之下,我有以下尝试查询并将查询的每一行转换为 CSV 文件中的新行:

if(isset($_POST["Submit"]) && ($_POST['Weight'] == 'Weight')){
    $fileName .= 'OutputWeightNull.csv';
    $query = mysqli_query($conn, 'SELECT * FROM  `Some_Table` WHERE WEIGHT = 0 OR weight IS NULL')or die(mysql_error());
    $result = mysqli_fetch_array($query) or die(mysql_error());
    $headerDisplayed = false;
    foreach ($result as $data){
    if (!headerDisplayed){ …
Run Code Online (Sandbox Code Playgroud)

php mysql csv mysqli php-stream-wrappers

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

将文本附加到列中

我需要在一个名为 description 的列中附加和前置每个值 <p></p>

所以我需要附加每个值<p>并附加</p>

所以下面test会变成<p>test</p>.

任何人都可以提出一个可以处理这个问题的查询吗?

mysql sql

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

Perl中准备好的SQL语句

我是Perl的新手,我正在努力克服最初的学习曲线.

我有以下SQL语句:

        SELECT 
            node_id 
        FROM 
            pagenodes
        INNER JOIN 
            pageproducts 
        ON 
            pagenodes.node_id = pageproducts.nodeid
        INNER JOIN 
            products 
        ON 
            pageproducts.prodid = products.prodid 
        WHERE 
            products.prodid  = ?
        LIMIT 1
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,在查询中设置了LIMIT 1,我正在尝试从Perl脚本执行此查询,并将结果设置为变量.

到目前为止,我有以下内容:

my $sql =
    'SELECT 
        node_id 
    FROM 
        pagenodes
    INNER JOIN 
        pageproducts 
    ON 
        pagenodes.node_id = pageproducts.nodeid
    INNER JOIN 
        products 
    ON 
        pageproducts.prodid = products.prodid 
    WHERE 
        products.prodid  = ?
    LIMIT 1';

    my $sth = $dbh->prepare($sql);
    my $sth->execute();
Run Code Online (Sandbox Code Playgroud)

我的问题是,我如何$prod_id作为WHERE参数传入,以及如何将结果设置为变量.谢谢

perl

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

PHP:在结果中使用scandir bu排除../ ./

我正在使用scandir和foreach循环来向用户显示目录中的文件列表.我的代码如下:

        $dir = scandir('/user1/caravans/public_html/wordpress/wp-content/uploads/wpallimport/files');

        foreach($dir as $directory)
{
        echo "<br/><input type='checkbox' name=\"File[]\" value='$directory'/>$directory<br>";
        }
Run Code Online (Sandbox Code Playgroud)

问题是剧本也回应了"." 和一个".."(没有语音标记),是否有一种优雅的方式来删除这些?短或正则表达式.谢谢

php php-5.6

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

在wordpress中使用回调键传递参数

我在这里工作在WordPress.我有以下代码:

if (is_product() && is_woocommerce() && $this->category_has_fiance() == true) { 
            $tabs['finance_tab'] = array(
                'title'     => __( 'Finance Options', 'woocommerce' ),
                'priority'  => 50,
                'callback'  => array ($this, 'woo_finance_tab_content')
                );
                return $tabs;
        }
Run Code Online (Sandbox Code Playgroud)

这可以按照您的预期工作,并调用$woo_finance_tab_content.但是,我想将一些参数传递给$woo_finance_tab_contenttab.这种情况可能吗?

php wordpress

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

修复哈希中的哈希位置

我有以下代码将数据传递给csv,但CSV中的列顺序看似随机(我将散列传递给CSV).我很难定义列的顺序.

有没有办法可以在我的%output_var哈希中修复哈希的位置,这样我就可以在CSV中有效地定义列顺序?

$common->print_header('text/csv','export_order_products.csv');
print common::to_csv(sort values %output_var)."\r\n";
my $cart_id;
foreach my $order (@data_to_export) {
  $order->{'order-id'} =~ s/\.cgi//;
  $order->{'order-item-id'} =~ s/\.cgi//;
  $order->{'purchase-date'} =~ s/\.cgi//;
  my @line;
  for (sort {$output_var{$a} cmp $output_var{$b}; } keys %output_var) {
    push @line, $order->{$_};
  }
   print common::to_csv(@line)."\r\n";
                }
Run Code Online (Sandbox Code Playgroud)

CSV子:

sub to_csv {
    my ($csv_line);
    my (@fields) = @_;
    my $i;
    for ($i=0; $i<scalar(@fields); $i++) {
        $fields[$i] =~ s/\r/\\r/gis;
        $fields[$i] =~ s/\n/\\n/gis;
        $fields[$i] =~ s/"/""/gis; # -- "
        $fields[$i] =~ s/(.*,.*)/"$1"/gis;
        $fields[$i] = '' if ($fields[$i] eq '0'); …
Run Code Online (Sandbox Code Playgroud)

perl

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

覆盖变量

我还处于Perl的早期阶段,如果这很明显,那么道歉.

我在Perl中声明一个变量,如下所示:

my $new_filename = 'nope';
Run Code Online (Sandbox Code Playgroud)

现在,如果满足某个条件(假设它在这里),我试图重新分配$new_filename像这样的值:

my $new_filename = "$common::conf{'html_dir'}/images/banners/$lc_prodid.$filetype";
Run Code Online (Sandbox Code Playgroud)

我是他们将值分配给表:

my $sql_query = qq(INSERT INTO banner_image (link, title, active, imageloc, rank) VALUES ('$link_text','$banner_text','$active','$new_filename','$new_rank'));
Run Code Online (Sandbox Code Playgroud)

我遇到的问题$new_filename在数据库中始终显示为"nope".任何人都可以建议为什么会这样?

谢谢

perl

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

PHP:在关联数组中动态设置值

我有一个名为的数组$brand_terms.我正在访问此数组中的两个对象.在这种情况下'name'和'slug'.然后我尝试在一个名为的关联数组中设置这些对象的值$values.代码如下:

$brand_terms = get_terms("pa_brand");
$values = array(
    foreach ($brand_terms as $brand_term){
        $brand_term->name => $brand_$term->slug, 
    }
);
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是分隔符,.所以逗号结束了$brand_term->name => $brand_$term->slug,.如果循环位于数组中的最后一个值,则不需要逗号并且代码被破坏.有没有一种很好的方法可以从foreach循环的最后一次迭代中删除这个逗号?

谢谢

php arrays

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

WooCommerce:向产品管理区域添加自定义过滤器

我最近使用以下过滤器和操作组合在 WooCommerce 管理中的“产品管理”部分添加了一列:manage_product_posts_columns, manage_product_posts_custom_column

我的问题是,是否有一个钩子不允许我为此列添加过滤器?我找不到,但我确定有可能吗?

谢谢

php wordpress woocommerce

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

PHP:while循环条件问题

我有以下代码,不幸的是它循环无限但我无法理解为什么:

$tot_age is 设置为604245119

while ($tot_age > 536467742) {
        $tot_age - 31536000;
        if  ($tot_age < 536467742 ) {
            // do something
            break;
        }
    }
Run Code Online (Sandbox Code Playgroud)

所以我在这里尝试的是以下内容.如果$tot_age大于17年,则从$ tot_age迭代循环并减去12个月.然后我试图在$ tot_age少于17年的时候突破循环.我也会在这里应用一些逻辑.

谁能在这里看到问题?谢谢

php while-loop

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

如果条件为真则多个其他

elsif在else if语句中有多个条件.

如果多个条件成立,语句的流程是什么?因此,在下面仅作为演示的简单示例中,是否达到了第二个elsif条件?

my $i = 1;

if ($i == 1){
}
elsif (i == 2){
}
elsif (i == 1){
}
else{
}
Run Code Online (Sandbox Code Playgroud)

perl if-statement

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