2010-03-31 78 views
5

Tôi không chắc chắn nếu nó có thể nhưng tôi muốn tạo ra một số loại chức năng mà bạn vượt qua trong một chuỗi như "vàng" hoặc "xanh" và nó trả về mã hex của nó hoặc phạm vi mã hex mà xanh hoặc vàng phù hợp với.Cách chuyển đổi màu chuỗi thành mã hex hoặc giá trị RGB của nó?

Điều này có thể thực hiện được trong PHP không? Nếu không thể, tôi sẵn sàng thử bất cứ điều gì khác có thể làm được điều này!

Cảm ơn tất cả

+0

nó có thể trong PHP, nếu bạn có một cơ sở dữ liệu có chứa tất cả các màu sắc. Vì vậy, bạn chỉ cần lấy cơ sở dữ liệu đó ở đâu đó –

+0

Bạn có thể muốn sử dụng [16 màu cơ bản được xác định trong tiêu chuẩn HTML] (http://www.w3.org/TR/html4/types.html#h-6.5) . – legoscia

+0

bạn có thể tìm thấy tất cả tên màu và giá trị hex của chúng trên trang web này: http://www.iconbazaar.com/color_tables/lepihce.html với một số regexp có thể sử dụng để xây dựng "cơ sở dữ liệu" dưới mọi hình thức . EDIT: http://answers.oreilly.com/topic/453-color-names-and-rgb-values-with-wide-browser-support/ cũng là một danh sách tốt, có vẻ dễ dàng hơn để nhập vào ví dụ. csv. – Rufinus

Trả lời

8

Không có cách nào để kiến ​​thức của tôi để chuyển đổi HTML color names hoặc CSS color names với giá trị bằng Hex hoặc RGB trong PHP. Bạn sẽ phải tạo một bản đồ mà biết tên (xem bài viết Wiki).

Có người đã làm công việc này cho bạn đã:

Trích:

$Colors = ARRAY( 
    "black"=>array("red"=>0x00, "green"=>0x00, "blue"=>0x00), 
    "maroon"=>array("red"=>0x80, "green"=>0x00, "blue"=>0x00), 
    // ... 
    // more colors inbetween 
    // ... 
    "wheat"=>array("red"=>0xF5, "green"=>0xDE, "blue"=>0xB3), 
    "whitesmoke"=>array("red"=>0xF5, "green"=>0xF5, "blue"=>0xF5), 
    "yellowgreen"=>array("red"=>0x9A, "green"=>0xCD, "blue"=>0x32) 
); 

và sau đó chỉ cần có được các giá trị RGB qua $maroon = $Colors['maroon'];

Tham khảo thêm :

+0

Thật tuyệt vời! Chỉ cần quấn nó xung quanh một rgb khác để chuyển đổi chức năng hex! ... Hoặc chỉ cần sử dụng nó như nó được! – Abs

+0

Trong trường hợp ai đó cần chức năng này, người đóng góp đầu tiên (Halit YEL) đã viết một chức năng tuyệt vời cho rgb để hex trên trang web php.net: http://php.net/manual/en/function.hexdec.php – Abs

10
 
// converts an html color name to a hex color value 
// if the input is not a color name, the original value is returned 
// http://wpCodeSnippets.info 

function color_name_to_hex($color_name) 
{ 
    // standard 147 HTML color names 
    $colors = array(
     'aliceblue'=>'F0F8FF', 
     'antiquewhite'=>'FAEBD7', 
     'aqua'=>'00FFFF', 
     'aquamarine'=>'7FFFD4', 
     'azure'=>'F0FFFF', 
     'beige'=>'F5F5DC', 
     'bisque'=>'FFE4C4', 
     'black'=>'000000', 
     'blanchedalmond '=>'FFEBCD', 
     'blue'=>'0000FF', 
     'blueviolet'=>'8A2BE2', 
     'brown'=>'A52A2A', 
     'burlywood'=>'DEB887', 
     'cadetblue'=>'5F9EA0', 
     'chartreuse'=>'7FFF00', 
     'chocolate'=>'D2691E', 
     'coral'=>'FF7F50', 
     'cornflowerblue'=>'6495ED', 
     'cornsilk'=>'FFF8DC', 
     'crimson'=>'DC143C', 
     'cyan'=>'00FFFF', 
     'darkblue'=>'00008B', 
     'darkcyan'=>'008B8B', 
     'darkgoldenrod'=>'B8860B', 
     'darkgray'=>'A9A9A9', 
     'darkgreen'=>'006400', 
     'darkgrey'=>'A9A9A9', 
     'darkkhaki'=>'BDB76B', 
     'darkmagenta'=>'8B008B', 
     'darkolivegreen'=>'556B2F', 
     'darkorange'=>'FF8C00', 
     'darkorchid'=>'9932CC', 
     'darkred'=>'8B0000', 
     'darksalmon'=>'E9967A', 
     'darkseagreen'=>'8FBC8F', 
     'darkslateblue'=>'483D8B', 
     'darkslategray'=>'2F4F4F', 
     'darkslategrey'=>'2F4F4F', 
     'darkturquoise'=>'00CED1', 
     'darkviolet'=>'9400D3', 
     'deeppink'=>'FF1493', 
     'deepskyblue'=>'00BFFF', 
     'dimgray'=>'696969', 
     'dimgrey'=>'696969', 
     'dodgerblue'=>'1E90FF', 
     'firebrick'=>'B22222', 
     'floralwhite'=>'FFFAF0', 
     'forestgreen'=>'228B22', 
     'fuchsia'=>'FF00FF', 
     'gainsboro'=>'DCDCDC', 
     'ghostwhite'=>'F8F8FF', 
     'gold'=>'FFD700', 
     'goldenrod'=>'DAA520', 
     'gray'=>'808080', 
     'green'=>'008000', 
     'greenyellow'=>'ADFF2F', 
     'grey'=>'808080', 
     'honeydew'=>'F0FFF0', 
     'hotpink'=>'FF69B4', 
     'indianred'=>'CD5C5C', 
     'indigo'=>'4B0082', 
     'ivory'=>'FFFFF0', 
     'khaki'=>'F0E68C', 
     'lavender'=>'E6E6FA', 
     'lavenderblush'=>'FFF0F5', 
     'lawngreen'=>'7CFC00', 
     'lemonchiffon'=>'FFFACD', 
     'lightblue'=>'ADD8E6', 
     'lightcoral'=>'F08080', 
     'lightcyan'=>'E0FFFF', 
     'lightgoldenrodyellow'=>'FAFAD2', 
     'lightgray'=>'D3D3D3', 
     'lightgreen'=>'90EE90', 
     'lightgrey'=>'D3D3D3', 
     'lightpink'=>'FFB6C1', 
     'lightsalmon'=>'FFA07A', 
     'lightseagreen'=>'20B2AA', 
     'lightskyblue'=>'87CEFA', 
     'lightslategray'=>'778899', 
     'lightslategrey'=>'778899', 
     'lightsteelblue'=>'B0C4DE', 
     'lightyellow'=>'FFFFE0', 
     'lime'=>'00FF00', 
     'limegreen'=>'32CD32', 
     'linen'=>'FAF0E6', 
     'magenta'=>'FF00FF', 
     'maroon'=>'800000', 
     'mediumaquamarine'=>'66CDAA', 
     'mediumblue'=>'0000CD', 
     'mediumorchid'=>'BA55D3', 
     'mediumpurple'=>'9370D0', 
     'mediumseagreen'=>'3CB371', 
     'mediumslateblue'=>'7B68EE', 
     'mediumspringgreen'=>'00FA9A', 
     'mediumturquoise'=>'48D1CC', 
     'mediumvioletred'=>'C71585', 
     'midnightblue'=>'191970', 
     'mintcream'=>'F5FFFA', 
     'mistyrose'=>'FFE4E1', 
     'moccasin'=>'FFE4B5', 
     'navajowhite'=>'FFDEAD', 
     'navy'=>'000080', 
     'oldlace'=>'FDF5E6', 
     'olive'=>'808000', 
     'olivedrab'=>'6B8E23', 
     'orange'=>'FFA500', 
     'orangered'=>'FF4500', 
     'orchid'=>'DA70D6', 
     'palegoldenrod'=>'EEE8AA', 
     'palegreen'=>'98FB98', 
     'paleturquoise'=>'AFEEEE', 
     'palevioletred'=>'DB7093', 
     'papayawhip'=>'FFEFD5', 
     'peachpuff'=>'FFDAB9', 
     'peru'=>'CD853F', 
     'pink'=>'FFC0CB', 
     'plum'=>'DDA0DD', 
     'powderblue'=>'B0E0E6', 
     'purple'=>'800080', 
     'red'=>'FF0000', 
     'rosybrown'=>'BC8F8F', 
     'royalblue'=>'4169E1', 
     'saddlebrown'=>'8B4513', 
     'salmon'=>'FA8072', 
     'sandybrown'=>'F4A460', 
     'seagreen'=>'2E8B57', 
     'seashell'=>'FFF5EE', 
     'sienna'=>'A0522D', 
     'silver'=>'C0C0C0', 
     'skyblue'=>'87CEEB', 
     'slateblue'=>'6A5ACD', 
     'slategray'=>'708090', 
     'slategrey'=>'708090', 
     'snow'=>'FFFAFA', 
     'springgreen'=>'00FF7F', 
     'steelblue'=>'4682B4', 
     'tan'=>'D2B48C', 
     'teal'=>'008080', 
     'thistle'=>'D8BFD8', 
     'tomato'=>'FF6347', 
     'turquoise'=>'40E0D0', 
     'violet'=>'EE82EE', 
     'wheat'=>'F5DEB3', 
     'white'=>'FFFFFF', 
     'whitesmoke'=>'F5F5F5', 
     'yellow'=>'FFFF00', 
     'yellowgreen'=>'9ACD32'); 

    $color_name = strtolower($color_name); 
    if (isset($colors[$color_name])) 
    { 
     return ('#' . $colors[$color_name]); 
    } 
    else 
    { 
     return ($color_name); 
    } 
} 
+0

Cảm ơn bạn đã chỉ cần đăng danh sách/chức năng thuận tiện này. – Ideogram

Các vấn đề liên quan