За последние 24 часа нас посетили 33413 программистов и 1693 робота. Сейчас ищут 929 программистов ...

Манипуляция с массивом

Тема в разделе "PHP для новичков", создана пользователем Pi Patel, 1 авг 2018.

Метки:
  1. Pi Patel

    Pi Patel Новичок

    С нами с:
    11 фев 2018
    Сообщения:
    13
    Симпатии:
    0
    Приветствую всех.
    Работаю с готовым кодом на сайте и заметил косяк. php скрипт получает данные:
    Код (Text):
    1. Имя_1
    2. F:\test1
    3. Имя_2
    4. F:\test2
    5. Имя_3
    6. F:\test3
    7. Имя_4
    8. F:\test4
    9. Имя_5
    10. F:\test5
    11. Имя_6
    12. F:\test6
    13. Имя_7
    14. F:\test7
    Он формирует табличку как на скриншоте. Под кнопками путь если навести курсором.
    Но как вы заметили всегда формируется две строки. Даже если нет списка. А должен в зависимости от количества строк формироваться.
    PHP:
    1. <?php
    2.  
    3. define("CLIENTAREA",true);
    4.  
    5. require("init.php");
    6. require("config.php");
    7. require "includes/customfieldfunctions.php";
    8.  
    9.  
    10. $ca_partner = new WHMCS_ClientArea();
    11.  
    12. if ($ca_partner->isLoggedIn()) {
    13.  
    14.     $uid = $_SESSION['uid'];
    15.     $curl = curl_init();
    16.     curl_setopt($curl, CURLOPT_URL, "http://site:80/test/test.php?id=$uid");
    17.     curl_setopt($curl, CURLOPT_RETURNTRANSFER,true);
    18.     $out = trim(curl_exec($curl));
    19.     curl_close($curl);
    20.     $test = explode("\n", $out);
    21.     $count = count($test);
    22.     $names = "";
    23.     $path = "";
    24.     for($i=0; $i < $count; $i++)
    25.     {
    26.    
    27.     if(strpos($test[$i], 'Name=') !== false)
    28.     {
    29.         $temp = "$test[$i]";
    30.         $temp = str_replace("Name=", "", $temp);
    31.         $temp = str_replace("_", " ", $temp);
    32.         $names .= $temp.",";
    33.     }
    34.     else
    35.     {
    36.         $temp = "$test[$i]";
    37.         $temp = str_replace("Path=", "", $temp);
    38.         $path .= $test[$i].",";
    39.     }
    40.     }
    41.     $path = explode(",", $path);
    42.     $var['path'] = array_diff($path, array(0, null));
    43.     $names = explode(",", $names);
    44.     $var['names'] = array_diff($names, array(0, null));
    45.     $command = "logactivity";
    46.     $count = count($var['names']);
    47.  
    48.     if ($out) {
    49.         $logValues["description"] = "Получили список" . $uid;
    50.         $smartyvalues['names'] = $var;
    51.         $count = ($count-1);
    52.         $smartyvalues['count'] = $count;
    53.  
    54.     } else {
    55.         $logValues["description"] = "Не удалось получить список" . $uid;
    56.     }
    57.  
    58.     $ca_partner->initPage();
    59.  
    60.     $ca_partner->setTemplate('test');
    61.  
    62.     $ca_partner->output();
    63.  
    64. } else {
    65.     header("Location: " . $loginRedirectUrl);
    66.     exit();
    67. }
    68. ?>
    Если параметр $smartyvalues['names'] = $var заменить на:
    PHP:
    1. $smartyvalues['names'] = $names
    То выстраивается табличка с правильным количеством строк но к сожалению пустая.
    Чего-то не хватает, подскажите пожалуйста.
     

    Вложения:

    • 01.jpg
      01.jpg
      Размер файла:
      36,2 КБ
      Просмотров:
      7
  2. username

    username Новичок

    С нами с:
    6 июл 2017
    Сообщения:
    223
    Симпатии:
    17
    я бы смарти убрал
     
  3. Pi Patel

    Pi Patel Новичок

    С нами с:
    11 фев 2018
    Сообщения:
    13
    Симпатии:
    0
    Ммм, боюсь это невозможно. У меня нету доступа даже к шаблонам. Все файлы require() закодированы.
    Тут если правильно написать алгоритм работать будет.