2010-03-31 3 views
5

Ich bin nicht sicher, ob es möglich ist, aber ich möchte eine Art von Funktion erstellen, in der Sie eine Zeichenfolge wie "gelb" oder "grün" übergeben und es gibt seinen Hex-Code oder den Bereich der Hex-Codes, grün oder gelb hineinpassen.Wie konvertiert man eine String-Farbe in ihren Hex-Code oder RGB-Wert?

Ist das in PHP möglich? Wenn es nicht möglich ist, bin ich bereit, alles andere zu versuchen, was das kann!

Dank all

+0

es möglich ist, in PHP, wenn Sie eine Datenbank, die alle diese Farben enthalten. Also, Sie müssen nur diese Datenbank irgendwo –

+0

Sie möchten vielleicht [die 16 Grundfarben im HTML-Standard definieren] (http://www.w3.org/TR/html4/types.html#h-6.5) . – legoscia

+0

Sie können alle Farbnamen und ihre Hex-Wert auf dieser Website finden: http://www.iconbazaar.com/color_tables/lepihce.html mit einigen Regexp sollte es möglich sein, dies zu verwenden, um eine "Datenbank" aller Art zu erstellen . EDIT: http://answers.oreilly.com/topic/453-color-names-and-rgb-values-with-wide-browser-support/ auch eine nette Liste, scheint einfacher zu importieren, um zB. CSV. – Rufinus

Antwort

8

meines Wissens keine Möglichkeit gibt HTML color names oder CSS color names ihrer Hex oder RGB-Wert in PHP zu konvertieren. Sie müssten eine Karte erstellen, die die Namen kennt (siehe Wiki-Artikel).

Jemand hat bereits für Sie diese Arbeit getan:

Auszug:

$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) 
); 

und dann einfach die RGB-Werte erhalten über $maroon = $Colors['maroon'];

Weitere Referenz :

+0

Wow, super! Einfach um eine andere rgb zu hex Konverterfunktion wickeln! ... Oder benutze es einfach wie es ist! – Abs

+0

Für den Fall, dass jemand diese Funktion benötigt, schrieb der erste Beitragende (Halit YEL) eine großartige Funktion für rgb auf hex auf der php.net Seite: 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

Danke für Einfach diese praktische Liste/Funktion posten. – Ideogram