首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在php中检查空的序列化字符串?

如何在php中检查空的序列化字符串?
EN

Stack Overflow用户
提问于 2018-08-26 00:57:14
回答 1查看 359关注 0票数 0

我在一个网站上工作,在那里我想检查空的序列化字符串。我在问题陈述中提到了我的问题。

我在php中使用的代码是:

代码语言:javascript
复制
<!-----------------------------LEFT DIV ------------------------------->


<div class="pickup-from-items-location" id="pickup_from_items_location">
   <div class="timings">
      <?php 
         $serialized = '';
         for ($i = 0; $i < count($data['item']->item_logistic); $i++) {
         if(strcmp($data['item']->item_logistic[$i]->logistics_type, "location_pickup") == 0)
         {
         $serialized .= strtolower($data['item']->item_logistic[$i]->logistics_times);
         }
         }
         if($serialized != '')
         {
         echo
         '<div class="icons_text"> 
         <img src="/images/rsz_venueorange__1_.png"> 
         <p class="mt-4 mb-3 heading_size">pickup from item\'s location </p>
         </div>'; 
         /*
         echo '<span class="font-weight-bold how-can-this-text">' . "how can this item be received" . '</span>';
         echo "<br>"; 
         echo "<br>"; 
         echo '<span class="font-weight-bold mb-3 ml-3">' . "pickup from item's location <br/>" . '</span>';
         echo "<br>";
         echo "<br>"; */
         $unserialized = unserialize( $serialized );


         foreach($unserialized as $key=>$value) 
         {
         echo '
         <div class="dates_timings_items_availability"> 
         <div class="items_availability_weekdays">'. strtolower(date('l', strtotime($key))) .':</div>
         <div class="items_availability_time"><span>'. $value['start'] .'</span></div>
         <div class="delimiter">to</div>
         <div class="items_availability_time"><span>'. $value['end'] .'</span></div>
         </div>'; 
         } 
         }


         else
         {
         /* echo "<p style=\"font-style: italic;\">No information available</p>"; */ 
         }
         ?>
   </div>
</div>




<!-----------------------------RIGHT DIV ------------------------------->


<div class="deliver-to-my-location">
   <div class="timings">
      <?php
         $serialized = '';
         for ($i = 0; $i < count($data['item']->item_logistic); $i++) {
         if(strcmp($data['item']->item_logistic[$i]->logistics_type, "delivery") == 0)
         {
         $serialized .= strtolower($data['item']->item_logistic[$i]->logistics_times);
         }
         }
         if($serialized != '')
         {
         echo 
         '<div class="icons_text"> 
         <img src="/images/rsz_deliveryicon__1_.png"> 
         <p class="mt-4 heading_size mb-3" style="width:100%;">deliver to my location </p>
         </div>'; 
         /*
         echo "<br>";
         echo "<br>";
         echo '<span class="font-weight-bold mb-3 ml-3">' . "deliver to my location <br/>" . '</span>';
         echo "<br>";
         echo "<br>"; */
         $unserialized = unserialize( $serialized );

         foreach($unserialized as $key=>$value) {
         echo '
         <div class="dates_timings_items_availability"> 
         <div class="items_availability_weekdays">'. strtolower(date('l', strtotime($key))) .':</div>
         <div class="items_availability_time"><span>'. date('g:i a', strtotime($value['start'])) .'</span></div>
         <div class="delimiter">to</div>
         <div class="items_availability_time"><span>'. date('g:i a', strtotime($value['end'])) .'</span></div>
         </div>';
         }
         }

         ?>
   </div>
</div>

问题陈述:

我想知道我需要应用什么逻辑,以便当左div为空时,右div应该向左移动。

左/右div在运行时变为空,因为我使用的是上面的php代码。

当$serialized字符串为null时,示例<div class="pickup-from-items-location"> <div class="timings">变为空,因为我使用了上面的if($serialized != '')条件。

代码语言:javascript
复制
      [[LEFT]                                              [RIGHT]]

左侧分区为<div class="pickup-from-items-location">,右侧分区为<div class="deliver-to-my-location">

因此,当left Div为空时,Right Div应该向左移动。

有可能吗?

代码语言:javascript
复制
      [[RIGHT]]
EN

回答 1

Stack Overflow用户

发布于 2018-08-26 01:11:46

是的,处理这个问题的最好方法(在我看来)是根据$serialized的值修改CSS。因此,当您不想显示左侧时,请不要在浏览器中显示它。理论上(取决于你的html和css的设置),当左边的栏没有显示时,右边应该只填充它的位置。

做到这一点;

首先,让我们将除echo之外的所有逻辑移到HTML之外。

代码语言:javascript
复制
<?php 
     $serialized = '';
     for ($i = 0; $i < count($data['item']->item_logistic); $i++) {
         if(strcmp($data['item']->item_logistic[$i]->logistics_type, "location_pickup") == 0) {
             $serialized .= strtolower($data['item']->item_logistic[$i]->logistics_times);
         }
     }
?>

然后,我们将在左侧添加HTML和PHP

代码语言:javascript
复制
<div class="pickup-from-items-location" style="<?php if(!empty($serialized)) echo 'display: none;'; ?>" id="pickup_from_items_location">
    <div class="timings">
        <div class="icons_text"> 
            <img src="/images/rsz_deliveryicon__1_.png"> 
            <p class="mt-4 heading_size mb-3" style="width:100%;">deliver to my location </p>
        </div>
        <?php
        if(!empty($serialized)) {
            $unserialized = unserialize( $serialized );

            foreach($unserialized as $key=>$value) {
                ?>
                <div class="dates_timings_items_availability"> 
                   <div class="items_availability_weekdays">'. strtolower(date('l', strtotime($key))) .':</div>
                   <div class="items_availability_time"><span>'. date('g:i a', strtotime($value['start'])) .'</span></div>
                   <div class="delimiter">to</div>
                   <div class="items_availability_time"><span>'. date('g:i a', strtotime($value['end'])) .'</span></div>
                </div>
                <?php
            }
        }
        ?>

    </div>
</div>

我建议对右侧重复类似的结构。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52019415

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档