PHP показывает только часть данных из строки данных

1

То, что я сделал до сих пор, - написать функцию, которую я вызываю на другой странице:

<div style="<?php echo groupColor($_SESSION['username']);?>"><?php echo $_SESSION['username'];?></div>

Что он делает, что извлекает стиль username_css из xf_user_group и таким образом я могу покрасить имя пользователя пользователя по цвету, который у них есть на форуме форума xenforo (все username_css содержат color: #somecolorcode;)

function groupColor($username) {

    global $xenforo;

    $xf_getuser = $xenforo->query("SELECT * FROM xf_user WHERE username = '".$username."'");

    if($xf_getuser->num_rows >= 1) {

        $fetch_xf_getuser = $xf_getuser->fetch_array();
        $fetch_xf_getuser_group = $fetch_xf_getuser["display_style_group_id"];

        $xf_getgroupstyle = $xenforo->query("SELECT * FROM xf_user_group WHERE user_group_id = '".$fetch_xf_getuser_group."'");

        if($xf_getgroupstyle->num_rows >= 1) {

            $fetch_xf_getgroupstyle = $xf_getgroupstyle->fetch_array();
            $result_forum_css = $fetch_xf_getgroupstyle["username_css"];

            return $result_forum_css;

        } else {

            die(mysqli_error($xenforo));

        }

    } else {

        die(mysqli_error($xenforo));

    }

}

То, что я хочу сделать сейчас, - это только извлечение color: #somecolorcode; от username_css поэтому я могу использовать его для цвет фона вместо этого, например: background-color: #somecolorcode;

Любая идея, как я должен продолжать? Вся помощь приветствуется, и извините за плохой титул, я не уверен, что называется методом.

EDIT 1: строка username_css содержит не только color: #colorcode; но и такие вещи, как: font-weight: bold; font-style: italic; color: red; font-weight: bold; font-style: italic; color: red;

  • 0
    Вам нужно включить файл, содержащий код PHP, в другой файл, в котором вы вызываете функцию.
  • 0
    @sandeepsure Да, я знаю об этом. Функция прекрасно работает, но не так, как я хочу, чтобы она работала.
Теги:
mysqli
extract

2 ответа

0

Вместо строки ниже.

 return $result_forum_css;

замените его на это.

 $total_prop = count($result_forum_css);
 $explode_result = explode(";",$result_forum_css);
 return $explode_result[$total_prop-2];

Здесь, основываясь на вашем комментарии, мы будем считать итоговый результат, и последний результат всегда будет пустым, поэтому мы получаем второй последний элемент и чтобы мы отрицали общий счет с помощью 2.

  • 0
    Это ничего не возвращает.
  • 0
    @ P.Nick Первое echo $result_forum_css; и дайте мне знать, что он будет выводить?
Показать ещё 4 комментария
0

Вы можете попробовать получить все данные после цвета: с помощью strpos и substr:

$css = "color:#000000;";
$color = substr($css, strpos($css, ':')+1, 7);

// Color is #000000
echo $color;
  • 0
    Username_css содержит не только цвет: #somecolorcode; но также и другие вещи, такие как font-weight: bold; и т. д.
  • 0
    @ P.Nick Исправлено ли то, что всегда четвертый стиль будет цветом в этой строке?
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню