Rgb sang hex php

Chỉ cần một lưu ý khác cho bản thân, trong trường hợp tôi cần nó một lần nữa

/**
 * #rrggbb hoặc #rgb to [r, g, b]
 */

function hex2rgb[string $hex]: mảng
{
    $hex = . ltrim[$hex, '#'];

    if[strlen[$hex] == 3]
        return [
            hexdec[$hex[0].$hex[0] . ,
            hexdec[$hex[1].$hex[1] . ,
            hexdec[$hex[2].$hex[2] . ,
        ];
    else
        return [
            hexdec[$hex[0].$hex[1] . ,
            hexdec[$hex[2].$hex[3] . ,
            hexdec[$hex[4].$hex[5] . ,
        ];
}


/**
 * [r, g, b] to #rrggbb
 */

function rgb2hex[array $rgb]: chuỗi
{
      return '# .
        . sprintf['%02x', $rgb[0]]
        . sprintf['%02x', $rgb[1]]
        . sprintf['%02x', $rgb[2]];
}

Để chuyển đổi một chuỗi RGB như “rgb[255, 13, 12]” sang HEX, trước tiên chúng ta cần lấy ba giá trị màu đỏ, lục và lam ra khỏi chuỗi, trong bài viết này chúng ta chỉ nói về chuỗi RGB với số nguyên.

Chúng ta cần xem xét rằng cũng có RGBA cho các màu có kênh alpha với cú pháp như “rgba[255, 13, 12, 0. 5]” điều này sẽ không được đề cập ở đây

Để lấy màu ra khỏi chuỗi, chúng ta sẽ sử dụng biểu thức chính quy

/rgba?\[\s?[[0-9]{1,3}],\s?[[0-9]{1,3}],\s?[[0-9]{1,3}]/i

Biểu thức chính quy ở trên khớp với bất kỳ chuỗi nào bắt đầu bằng “rgb”, kiểm tra “a” tùy chọn, sau đó tìm dấu ngoặc và số đầu tiên trong khoảng từ 0 đến 999. Sau số đầu tiên, một dấu phẩy được mong đợi và sau đó là dấu cách hoặc trực tiếp số tiếp theo. Biểu thức chính quy này chỉ khớp cho đến số thứ ba và không kiểm tra thêm kênh alpha hoặc nếu có dấu ngoặc đóng. Bạn có thể tìm thấy các biểu thức chính quy chi tiết hơn trên internet để kiểm tra xem đó có phải là màu RGB hợp lệ hay không, ví dụ: chúng tôi sẽ kiểm tra xem các số có không cao hơn 255 trong mã PHP của chúng tôi hay không

Phần PHP

Chúng tôi bắt đầu với một tệp PHP đơn giản chứa chuỗi CSS của chúng tôi và biểu thức chính quy để lấy màu ra khỏi chuỗi

Chủ Đề