On Tue, 1 Nov 2011, Jan Heinen wrote: > Hello, > > I am just programming a catalog which should be printed. > > I have a lot of data, text and pictures in a MySQL-database and want to > generate a nice catalog with ConTeXt. > To get the data from MySQL to ConTeXt I use PHP as an Interface: > > MySQL -> PHP -> ConTeXt > > And lot's of ConTeXt-macros will make a nice layout :-) > > To give something back to this ConTeXt-community, I will put some helpfull > PHP-functions into the wiki of contextgarden.net. > > Today I wrote the function "ConvertToConteXt" which converts special > ConTeXt-characters. You can see it below. > > > Before I put it into contextgarden.net ... > 1. ... please test it. > 2. You see three characters, where I don't know the code-number \char??? for > ConTeXt. Do you know them? > 3. Did I forget to convert a character? > > Regards > Jannis > > > > function ConvertToConteXt ( $xstring ) { > /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * > * > * > * author: Jörg Kopp > * www.dr-kopp.com > * 01.11.2011 > * > * Convert special ConTeXt-characters with php > * Works with PHP5 > * > * Call it with the string you want to convert ... > * ConvertToConteXt ($xstring); > * > * ... and you get back the converted string > * > * e.g.: > * Input: > * $string = "My root-Directory: /home/hans"; > * $string = ConvertToConteXt ( $string ); > * > * Output/Return: > * $string = "My root\\char45Directory\\char58 > \\char47home\\char47hans"; > * > * When you write this into a file ... > * file_put_contents ( "example.tex", "My > root\\char45Directory\char58 \\char47home\\char47hans", FILE_APPEND ); > * > * ... You will find the following in example.tex: > * My root\char45Directory\char58 \char47home\char47hans > * > * An when you compile example.tex with ConTeXt > * context example.text > * > * You can read the following in the resulting example.pdf: > * My root-Directory: /home/hans > * > * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ > > $xstring = html_entity_decode ( $xstring ); // convert > HTML-entities into normal characters > $xstring = str_replace ( "!", "\\char33", $xstring ); // > Ausrufungszeichen/ConvertToConteXt > $xstring = str_replace ( "\"", "\\char34", $xstring ); // > Anführungszeichen/quotation mark > $xstring = str_replace ( "#", "\\char35", $xstring ); // Raute/number > sign > $xstring = str_replace ( "$", "\\char36", $xstring ); // > Dollar-Zeichen/dollar sign > $xstring = str_replace ( "%", "\\char37", $xstring ); // > Prozent-Zeichen/percent sign > $xstring = str_replace ( "&", "\\char38", $xstring ); // Kaufmännisches > Und/ampersand > $xstring = str_replace ( "'", "\\char39", $xstring ); // > Apostroph/apostrophe > $xstring = str_replace ( "(", "\\char40", $xstring ); // Klammer auf/left > parenthesis > $xstring = str_replace ( ")", "\\char41", $xstring ); // Klammer zu/right > parenthesis > $xstring = str_replace ( "*", "\\char42", $xstring ); // Stern/asterisk > $xstring = str_replace ( "+", "\\char43", $xstring ); // Plus/plus sign > $xstring = str_replace ( ",", "\\char44", $xstring ); // Komma/comma > $xstring = str_replace ( "-", "\\char45", $xstring ); // Minus/hyphen > $xstring = str_replace ( ".", "\\char46", $xstring ); // Punkt/period > $xstring = str_replace ( "/", "\\char47", $xstring ); // > Schrägstrich/period > $xstring = str_replace ( ":", "\\char58", $xstring ); // > Doppelpunkt/colon > $xstring = str_replace ( ";", "\\char59", $xstring ); // > Semikolon/semicolon > $xstring = str_replace ( "<", "\\char60", $xstring ); // > Kleinerzeichen/less-than > $xstring = str_replace ( "=", "\\char61", $xstring ); // > Gleichzeichen/equals-to > $xstring = str_replace ( ">", "\\char62", $xstring ); // > Größerzeichen/greater-than > $xstring = str_replace ( "?", "\\char63", $xstring ); // > Fragezeichen/question mark > $xstring = str_replace ( "@", "\\char64", $xstring ); // at-Zeichen/at > sign > $xstring = str_replace ( "[", "\\char91", $xstring ); // eckige Klammer > auf/left square bracket > $xstring = str_replace ( "\\", "\\char92", $xstring ); // > Backslash/backslash > $xstring = str_replace ( "]", "\\char93", $xstring ); // eckige Klammer > zu/right square bracket > $xstring = str_replace ( "^", "\\char94", $xstring ); // Zirkumflex/caret > $xstring = str_replace ( "_", "\\char95", $xstring ); // > Unterstrich/underscore > //$xstring = str_replace ( "°", "\\char", $xstring ); // Grad/ < ------ > missing > $xstring = str_replace ( "`", "\\char96", $xstring ); // accent > aigu/acute accent > $xstring = str_replace ( "{", "\\char123", $xstring ); // geschweifte > Klammer auf/left curly brace > $xstring = str_replace ( "|", "\\char124", $xstring ); // > Pipezeichen/vertical bar > $xstring = str_replace ( "}", "\\char125", $xstring ); // geschweifte > Klammer zu/right curly brace > $xstring = str_replace ( "~", "\\char126", $xstring ); // Tilde/tilde > //$xstring = str_replace ( "•", "\\char", $xstring ); // ?/ < ------ > missing > //$xstring = str_replace ( "º", "\\char", $xstring ); // ?/ < ------ > missing > > return $xstring; > } This is what I use in t-vim " Change special TeX characters to escape sequences. let s:temp = escape( s:temp, '\{}') and read everything in a catcode regime that sets only \ { } to their regular meaning. Aditya