<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-312300893061964297</id><updated>2012-02-02T01:52:54.149-08:00</updated><category term='xml'/><category term='captcha'/><category term='xml2array'/><category term='javascript'/><category term='array2xml'/><category term='smarty'/><category term='php'/><category term='highlight'/><category term='form'/><title type='text'>My SRC</title><subtitle type='html'>&lt;b&gt;&lt;a href="http://mysrc.blogspot.com/2007/02/php-xml-to-array-and-backwards.html"&gt;PHP XML Parser&lt;/a&gt;&lt;/b&gt;</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://mysrc.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/312300893061964297/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://mysrc.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>leoSr</name><uri>http://www.blogger.com/profile/09731107791619864392</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>4</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-312300893061964297.post-9222685841902370617</id><published>2007-02-14T05:26:00.000-08:00</published><updated>2007-02-15T05:02:34.834-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='captcha'/><category scheme='http://www.blogger.com/atom/ns#' term='form'/><category scheme='http://www.blogger.com/atom/ns#' term='php'/><category scheme='http://www.blogger.com/atom/ns#' term='smarty'/><title type='text'>PHP: Form with smarty + captcha</title><content type='html'>Form composition with smarty + captcha&lt;br /&gt;&lt;br /&gt;&lt;pre class=php id=php1&gt;&lt;br /&gt;/*&lt;br /&gt;    Usage: &lt;br /&gt;    $ff=array(&lt;br /&gt;        array('text', 'field_name', 'label', array('class'=&amp;gt;'area'), array('postlabel'=&amp;gt;'ddd', 'validate'=&amp;gt;'empty')),&lt;br /&gt;        array('separator', 'td_class', 'text here'),&lt;br /&gt;        array('options', 'field_name2', 'label', array('options'=&amp;gt;array(1=&amp;gt;2)), array('postlabel'=&amp;gt;'ddd', 'check'=&amp;gt;'empty')),&lt;br /&gt;        array('submit', '', '', array('value'=&amp;gt;'Sign up')),&lt;br /&gt;        array('hidden',    'hid', '', array('value'=&amp;gt;'blah'))&lt;br /&gt;    );&lt;br /&gt;    sf_init($ff);&lt;br /&gt;    &lt;br /&gt;    $smarty-&amp;gt;assign(array('f2'=&amp;gt;$ff, 'in'=&amp;gt;$_REQUEST));&lt;br /&gt;    $sm-&amp;gt;register_function('smarty_form', 'smarty_form');&lt;br /&gt;    {smarty_form fields=$f2 in=$in table_attr=&amp;quot;class=tabt cellpadding=0 cellspacing=0&amp;quot; form_attr=&amp;quot;method=post&amp;quot; colspan_class=&amp;quot;separator&amp;quot;}&lt;br /&gt;&lt;br /&gt;*/&lt;br /&gt;&lt;br /&gt;function sf_init(&amp;amp;$ff) {&lt;br /&gt;    $ft=array('type', 'name', 'label', 'fp', 'gp'); // make readable array&lt;br /&gt;    foreach ($ff as $fd) {&lt;br /&gt;        $fdh=array(); foreach ($ft as $i=&amp;gt;$t) {if (isset($fd[$i])) $fdh[$t]=$fd[$i];}&lt;br /&gt;        $f2[]=$fdh;&lt;br /&gt;    }&lt;br /&gt;    $ff=$f2;&lt;br /&gt;}&lt;br /&gt;function iname($f2, $fd) {&lt;br /&gt;    foreach ($f2 as $i=&amp;gt;$f) {if ($f['name']==$fd) $fi=$i;}&lt;br /&gt;    return (isset($fi) ? $fi : -1);&lt;br /&gt;}&lt;br /&gt;function vfields($f2) {&lt;br /&gt;    $fr=array();&lt;br /&gt;    foreach ($f2 as $f) {&lt;br /&gt;        if (!in_array($f['type'], array('separator', 'submit')) &amp;amp;&amp;amp; $f['name']!='captcha') $fr[]=$f['name']; &lt;br /&gt;    }&lt;br /&gt;    return $fr;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;function smarty_form($p, &amp;amp;$smarty) {&lt;br /&gt;    $hidden=array();&lt;br /&gt;    foreach ($p['fields'] as $i=&amp;gt;$_fd) {$fd=&amp;amp;$p['fields'][$i];&lt;br /&gt;        // start values    &lt;br /&gt;        $fd['fp']['name']=$fd['name']; // for form tags&lt;br /&gt;        $fd['fp']['type']=$fd['type'];&lt;br /&gt;        if (isset($p['in'][$fd['name']])) { // in-value&lt;br /&gt;            $par=(in_array($fd['type'], array('options', 'radios', 'checkboxes')) ? 'selected' : 'value');&lt;br /&gt;            $fd['fp'][$par]=$p['in'][$fd['name']];&lt;br /&gt;        }&lt;br /&gt;        // generate fields&lt;br /&gt;        if (in_array($fd['type'], array('options', 'radios', 'checkboxes'))) {&lt;br /&gt;            require_once(SMARTY_DIR.&amp;quot;plugins/function.html_$fd[type].php&amp;quot;);&lt;br /&gt;            if (isset($p['in'][$fd['name']])) $fd['fp']['selected']=$p['in'][$fd['name']];&lt;br /&gt;            $fields_t[$fd['name']]=call_user_func(&amp;quot;smarty_function_html_$fd[type]&amp;quot;, $fd['fp'], $smarty);&lt;br /&gt;        } elseif (!in_array($fd['type'], array('separator', 'hidden'))) {&lt;br /&gt;            $fields_t[$fd['name']]=_field_gen($fd['fp'], $fd['type']);&lt;br /&gt;        }&lt;br /&gt;        // data for table, hidden fields&lt;br /&gt;        if ($fd['type']=='hidden') $hidden[]=_field_gen($fd['fp'], $fd['type']);&lt;br /&gt;        elseif ($fd['type']=='separator') $data[][]=$fd['label'];&lt;br /&gt;        else $data[]=array(&lt;br /&gt;                $fd['label'].(isset($fd['gp']['check']) ? ' *' : ''), &lt;br /&gt;                $fields_t[$fd['name']].(isset($fd['gp']['plabel']) ? $fd['gp']['plabel'] : '') &lt;br /&gt;            );&lt;br /&gt;    }&lt;br /&gt;    &lt;br /&gt;    $js=_jstext($p['fields']); // javascript-check&lt;br /&gt;    return $js.'&amp;lt;form '.$p['form_attr'].($js ? ' onsubmit=&amp;quot;return validate_form(this)&amp;quot;' : '').'&amp;gt;'.&lt;br /&gt;        &amp;quot;\n&amp;quot;.implode(&amp;quot;\n&amp;quot;, $hidden).&amp;quot;\n&amp;quot;._tablefm($data, &amp;amp;$p).'&amp;lt;/form&amp;gt;';&lt;br /&gt;}&lt;br /&gt;function _tablefm($data, $p) {&lt;br /&gt;    $res[]='&amp;lt;table '.$p['table_attr'].'&amp;gt;';&lt;br /&gt;    $cols=0; foreach ($data as $line) {$c=count($line); if ($c&amp;gt;$cols) $cols=$c;}&lt;br /&gt;    foreach ($data as $line) {&lt;br /&gt;        $res[]='&amp;lt;tr&amp;gt;';&lt;br /&gt;        if (count($line)==1) $res[]=&amp;quot;&amp;lt;td class=\&amp;quot;$p[colspan_class]\&amp;quot; colspan=$cols&amp;gt;$line[0]&amp;lt;/td&amp;gt;&amp;quot;;&lt;br /&gt;        else {foreach ($line as $y=&amp;gt;$v) $res[]=&amp;quot;&amp;lt;td&amp;gt;$v&amp;lt;/td&amp;gt;&amp;quot;;}&lt;br /&gt;        $res[]='&amp;lt;/tr&amp;gt;';&lt;br /&gt;    }&lt;br /&gt;    $res[]='&amp;lt;/table&amp;gt;';&lt;br /&gt;    return implode(&amp;quot;\n&amp;quot;, $res);&lt;br /&gt;}&lt;br /&gt;function _jstext($fields_h) {&lt;br /&gt;    foreach ($fields_h as $fd) {&lt;br /&gt;        if (!isset($fd['gp']['check'])) continue;&lt;br /&gt;        $rs['name'][]=$fd['name'];&lt;br /&gt;        $rs['label'][]=$fd['label'];&lt;br /&gt;        $rs['check'][]=$fd['gp']['check'];&lt;br /&gt;    }&lt;br /&gt;    if (!$rs) return '';    &lt;br /&gt;    return '&lt;br /&gt;&amp;lt;script&amp;gt;&lt;br /&gt;v_names = new Array(&amp;quot;'.implode('&amp;quot;, &amp;quot;', $rs['name']).'&amp;quot;);&lt;br /&gt;v_checks = new Array(&amp;quot;'.implode('&amp;quot;, &amp;quot;', $rs['check']).'&amp;quot;);&lt;br /&gt;v_labels = new Array(&amp;quot;'.implode('&amp;quot;, &amp;quot;', $rs['label']).'&amp;quot;);&lt;br /&gt;&lt;br /&gt;function validate_form(obj) {&lt;br /&gt;    errors=&amp;quot;&amp;quot;; &lt;br /&gt;    for (i=0; i&amp;lt;obj.elements.length; i++) {&lt;br /&gt;        for (y=0; y&amp;lt;v_names.length; y++) {&lt;br /&gt;            if (obj.elements[i].name==v_names[y]) errors+=_validate(v_checks[y], obj.elements[i], v_labels[y]);&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;    if (errors) {alert(errors); return false;}&lt;br /&gt;    else return true; &lt;br /&gt;}&lt;br /&gt;function _validate(type, obj, label) {&lt;br /&gt;    res=&amp;quot;&amp;quot;;    &lt;br /&gt;    if (type==&amp;quot;email&amp;quot;) {&lt;br /&gt;        if (obj.value.indexOf(&amp;quot;.&amp;quot;)&amp;gt;2 &amp;amp;&amp;amp; obj.value.indexOf(&amp;quot;@&amp;quot;) &amp;gt; 0) res=&amp;quot;&amp;quot;;&lt;br /&gt;        else res=&amp;quot;E-mail address is not valid\n&amp;quot;;&lt;br /&gt;    } else if (type==&amp;quot;empty&amp;quot;) {&lt;br /&gt;        if (obj.value==&amp;quot;&amp;quot; || obj.value==null) res=&amp;quot;Field \&amp;quot;&amp;quot;+label+&amp;quot;\&amp;quot; is empty\n&amp;quot;;&lt;br /&gt;    }&lt;br /&gt;    return res;&lt;br /&gt;}&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;br /&gt;';&lt;br /&gt;}&lt;br /&gt;function _field_gen($params, $type='input') {&lt;br /&gt;    if ($type=='textarea') {&lt;br /&gt;        foreach ($params as $k=&amp;gt;$v) {if ($k!='value') $pp=&amp;quot;$k=\&amp;quot;$v\&amp;quot;&amp;quot;;}&lt;br /&gt;        return '&amp;lt;textarea '.implode(' ', $pp).'&amp;gt;'.(isset($params['value']) ? $params['value'] : '').'&amp;lt;/textarea&amp;gt;';&lt;br /&gt;    } else {&lt;br /&gt;        foreach ($params as $k=&amp;gt;$v) {$pp[]=&amp;quot;$k=\&amp;quot;$v\&amp;quot;&amp;quot;;}&lt;br /&gt;        return '&amp;lt;input '.implode(' ', $pp).'&amp;gt;';&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;    &lt;br /&gt;&lt;br /&gt;/* &lt;br /&gt;    Usage:&lt;br /&gt;    image.php: &lt;br /&gt;        $captcha=array(140, 34, 'britanic.ttf', 25, 0, 0, 0, array(255,255,255), array(0,0,50)); &lt;br /&gt;        captcha();&lt;br /&gt;    form.php: &lt;br /&gt;        &amp;lt;form method=&amp;quot;POST&amp;quot;&amp;gt;&amp;lt;img src=&amp;quot;img.php&amp;quot;&amp;gt;&amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;captcha&amp;quot;&amp;gt;&amp;lt;input type=&amp;quot;submit&amp;quot;&amp;gt;&amp;lt;/form&amp;gt;&lt;br /&gt;        if ($_POST &amp;amp;&amp;amp; check_captcha()) echo &amp;quot;ok&amp;quot;;&lt;br /&gt;    &lt;br /&gt;*/&lt;br /&gt;&lt;br /&gt;function captcha() {&lt;br /&gt;    global $captcha;&lt;br /&gt;    list($box_w, $box_h, $font, $font_size, $font_angle, $margin_left, $margin_top, $color_bg, $color_text)=$captcha;&lt;br /&gt;    $pass=''; $chm=rand(0,1);&lt;br /&gt;    $ch=array(str_split('aeiouy'), str_split('bcdfjhgkmnprstvxz'));&lt;br /&gt;    while (strlen($pass)&amp;lt;6) {$pass.=$ch[$chm][array_rand($ch[$chm])]; $chm=($chm ? 0:1);}&lt;br /&gt;    session_start();&lt;br /&gt;    $_SESSION['captcha'] = $pass;&lt;br /&gt;    $image = ImageCreatetruecolor($box_w,$box_h); // create the image resource&lt;br /&gt;    $color_bg = ImageColorAllocate($image, $color_bg[0], $color_bg[1], $color_bg[2]); // set colors&lt;br /&gt;    $color_text = ImageColorAllocate($image, $color_text[0], $color_text[1], $color_text[2]);&lt;br /&gt;    imagefill($image, 0, 0, $color_bg); // set background&lt;br /&gt;    imagettftext($image, $font_size, $font_angle, $margin_left, $font_size + $margin_top, $color_text, $font, $pass); // set text&lt;br /&gt;    header(&amp;quot;Content-Type: image/jpg&amp;quot;); // or image/jpg&lt;br /&gt;    imagejpeg($image); // created image&lt;br /&gt;    imagedestroy($image);&lt;br /&gt;}&lt;br /&gt;function check_captcha() {&lt;br /&gt;    session_start();&lt;br /&gt;    if (isset($_SESSION['captcha']) &amp;amp;&amp;amp; isset($_REQUEST['captcha']) &amp;amp;&amp;amp; $_SESSION['captcha']==$_REQUEST['captcha']) {&lt;br /&gt;        unset($_SESSION['captcha']);&lt;br /&gt;        return 1;&lt;br /&gt;    }&lt;br /&gt;    return 0;&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/312300893061964297-9222685841902370617?l=mysrc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mysrc.blogspot.com/feeds/9222685841902370617/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=312300893061964297&amp;postID=9222685841902370617' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/312300893061964297/posts/default/9222685841902370617'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/312300893061964297/posts/default/9222685841902370617'/><link rel='alternate' type='text/html' href='http://mysrc.blogspot.com/2007/02/form-composition-with-smarty-captcha.html' title='PHP: Form with smarty + captcha'/><author><name>leoSr</name><uri>http://www.blogger.com/profile/09731107791619864392</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-312300893061964297.post-981133864433648283</id><published>2007-02-14T00:57:00.000-08:00</published><updated>2007-03-14T01:29:37.780-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='highlight'/><category scheme='http://www.blogger.com/atom/ns#' term='php'/><title type='text'>PHP highlight in Javascript</title><content type='html'>Javascript &lt;br /&gt;&lt;br /&gt;&lt;pre class=php id=js1&gt;&lt;br /&gt;&amp;lt;script&amp;gt;&lt;br /&gt;function h_js(name) {&lt;br /&gt;    h_base(name, &amp;quot;js_&amp;quot;, &amp;quot;(function|var|null|false|true|try|catch|if|else|new|return|for)&amp;quot;, &amp;quot;([\!\(\)=\}\{,.])&amp;quot;);&lt;br /&gt;}&lt;br /&gt;function h_php(name) {&lt;br /&gt;    h_base(name, &amp;quot;php_&amp;quot;, &amp;quot;(function|global|array|echo|if|else|elseif|return|foreach|as|[\!\(\)=\}\{,.])&amp;quot;);&lt;br /&gt;}&lt;br /&gt;function h_java(name) {&lt;br /&gt;    h_base(name, &amp;quot;java_&amp;quot;, &amp;quot;(package|import|public|private|static|final|class|void|null|boolean|int|false|true|try|catch|if|else|new|return|for)&amp;quot;);&lt;br /&gt;}&lt;br /&gt;function h_base(name, wpre, bvar, bres) {&lt;br /&gt;    obj=document.getElementById(name); if (!obj) return;&lt;br /&gt;    bvar=new RegExp(bvar, &amp;quot;ig&amp;quot;); &lt;br /&gt;    bquote=new RegExp(&amp;quot;(\&amp;quot;[^\&amp;quot;]+\&amp;quot;|'[^']+')&amp;quot;, &amp;quot;ig&amp;quot;); &lt;br /&gt;    bcomm=new RegExp(&amp;quot;(\/\/ .*)&amp;quot;, &amp;quot;ig&amp;quot;); &lt;br /&gt;    if (bres) bres=new RegExp(bres, &amp;quot;ig&amp;quot;);&lt;br /&gt;    ta=obj.innerHTML.split(lnbr);&lt;br /&gt;    for (i=0; i &amp;lt; ta.length; i++) {&lt;br /&gt;        cl=wpre+&amp;quot;res&amp;quot;; if (bres) ta[i]=ta[i].replace(bres, &amp;quot;&amp;lt;font class=&amp;quot;+cl+&amp;quot;&amp;gt;$1&amp;lt;/font&amp;gt;&amp;quot;);&lt;br /&gt;        cl=wpre+&amp;quot;var&amp;quot;; ta[i]=ta[i].replace(bvar, &amp;quot;&amp;lt;font class=&amp;quot;+cl+&amp;quot;&amp;gt;$1&amp;lt;/font&amp;gt;&amp;quot;);&lt;br /&gt;        cl=wpre+&amp;quot;quote&amp;quot;; ta[i]=ta[i].replace(bquote, &amp;quot;&amp;lt;font class=&amp;quot;+cl+&amp;quot;&amp;gt;$1&amp;lt;/font&amp;gt;&amp;quot;);&lt;br /&gt;        cl=wpre+&amp;quot;comment&amp;quot;; ta[i]=ta[i].replace(bcomm, &amp;quot;&amp;lt;font class=&amp;quot;+cl+&amp;quot;&amp;gt;$1&amp;lt;/font&amp;gt;&amp;quot;);&lt;br /&gt;    }&lt;br /&gt;    tj=ta.join(&amp;quot;_LN_&amp;quot;); cl=wpre+&amp;quot;comment&amp;quot;; tj=tj.replace(/(\/\*.*?\*\/)/gi, &amp;quot;&amp;lt;font class=&amp;quot;+cl+&amp;quot;&amp;gt;$1&amp;lt;/font&amp;gt;&amp;quot;); ta=tj.split(&amp;quot;_LN_&amp;quot;);    &lt;br /&gt;    cl=wpre+&amp;quot;in&amp;quot;; obj.innerHTML=&amp;quot;&amp;lt;pre class=&amp;quot;+cl+&amp;quot;&amp;gt;&amp;quot;+ta.join(&amp;quot;\n&amp;quot;)+&amp;quot;&amp;lt;/pre&amp;gt;&amp;quot;;&lt;br /&gt;}&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;change code to push it to blog&lt;br /&gt;&lt;br /&gt;&lt;pre class=php id=php1&gt;&lt;br /&gt;function out_html($fname) {&lt;br /&gt;    $tt=htmlentities(file_get_contents($fname));&lt;br /&gt;    $tt=str_replace("\t", "    ", $tt);&lt;br /&gt;    echo $tt;&lt;br /&gt;}&lt;br /&gt;function js_esc($fname) {&lt;br /&gt;    $txt=file_get_contents('1.txt');&lt;br /&gt;    $txt=preg_replace('/\r?\n/', '', $txt);&lt;br /&gt;    $txt=str_replace('\\', '\\\\', $txt);&lt;br /&gt;    $txt=str_replace('&amp;quot;', '\\&amp;quot;', $txt);&lt;br /&gt;    echo &amp;quot;&amp;lt;script&amp;gt;document.write(escape(\&amp;quot;$txt\&amp;quot;));&amp;lt;/script&amp;gt;&amp;quot;;&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/312300893061964297-981133864433648283?l=mysrc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mysrc.blogspot.com/feeds/981133864433648283/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=312300893061964297&amp;postID=981133864433648283' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/312300893061964297/posts/default/981133864433648283'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/312300893061964297/posts/default/981133864433648283'/><link rel='alternate' type='text/html' href='http://mysrc.blogspot.com/2007/02/php-highlight-in-javascript.html' title='PHP highlight in Javascript'/><author><name>leoSr</name><uri>http://www.blogger.com/profile/09731107791619864392</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-312300893061964297.post-675072564832790153</id><published>2007-02-07T01:52:00.000-08:00</published><updated>2007-02-14T05:35:33.579-08:00</updated><title type='text'>PHP: MySQL interface</title><content type='html'>&lt;pre class=php id=php1&gt;&lt;br /&gt;/*&lt;br /&gt;    Mysql functions. Usage:&lt;br /&gt;    &lt;br /&gt;    $isloc=1; $db=array('loc'=&amp;gt;array('localhost', 'root', '', 'db1'), 'srv'=&amp;gt;array());&lt;br /&gt;    mconn();&lt;br /&gt;    msel(&amp;quot;INSER2T INTO stats (^i) VALUES (^v)&amp;quot;, array('dt'=&amp;gt;'2006-12-25', 'hh'=&amp;gt;'5'));&lt;br /&gt;    msel(&amp;quot;UPDATE stats SET ^u WHERE &amp;quot;.mesc('id=%s', &amp;quot;log'in&amp;quot;), array('dt'=&amp;gt;'2006-12-25', 'hh'=&amp;gt;'5'));&lt;br /&gt;    msel(&amp;quot;SELECT FROM stats WHERE login=%s&amp;quot;, array(&amp;quot;log'in&amp;quot;), 'hash');&lt;br /&gt;    mdis();&lt;br /&gt;&lt;br /&gt;    mesc('id=%s', &amp;quot;log'in&amp;quot;); &lt;br /&gt;    mesc('id=%s OR id=%s', array(&amp;quot;log'in&amp;quot;, &amp;quot;p'wd&amp;quot;)); &lt;br /&gt;    mesc('id IN (%a)', array(&amp;quot;log'in&amp;quot;, &amp;quot;p'wd&amp;quot;));    &lt;br /&gt;*/&lt;br /&gt;&lt;br /&gt;function mconn($link='') {&lt;br /&gt;    global $isloc, $db;&lt;br /&gt;    $t=$link.($isloc ? 'loc' : 'srv');&lt;br /&gt;    $db['_l'][$link]=mysql_connect($db[$t][0], $db[$t][1], $db[$t][2]); &lt;br /&gt;    mysql_select_db($db[$t][3], $db['_l'][$link]);&lt;br /&gt;}&lt;br /&gt;function mdis($link='') {&lt;br /&gt;    global $db;&lt;br /&gt;    mysql_close($db['_l'][$link]);&lt;br /&gt;}&lt;br /&gt;function msel($qu, $fv=array(), $st='', $link='', $sq='') {&lt;br /&gt;    global $db;&lt;br /&gt;    if (strpos($qu, 'SELECT')!==false) {&lt;br /&gt;        $qu=mesc($qu, $fv);&lt;br /&gt;        if ($sq) echo $qu.&amp;quot;&amp;lt;br&amp;gt;\n&amp;quot;;&lt;br /&gt;        $res=mysql_query($qu, $db['_l'][$link]);&lt;br /&gt;        if ($res===false) {echo '&amp;lt;b&amp;gt;'.$qu.mysql_error().&amp;quot;&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;\n&amp;quot;; return;}&lt;br /&gt;        $mfa=($st=='scal' ? MYSQL_NUM : MYSQL_ASSOC);&lt;br /&gt;        $lines=array(); while ($row=mysql_fetch_array($res, $mfa)) $lines[]=$row;&lt;br /&gt;        if ($st=='scal') return ($lines ? $lines[0][0] : '');&lt;br /&gt;        else if ($st=='hash') return ($lines ? $lines[0] : array());&lt;br /&gt;        else return $lines;&lt;br /&gt;        return $lines;&lt;br /&gt;    }&lt;br /&gt;    if (strpos($qu, 'INSERT')!==false) {&lt;br /&gt;        $fds=array(); $vas=array();&lt;br /&gt;        foreach ($fv as $f=&amp;gt;$v) {$fds[]=$f; $vas[]=&amp;quot;'&amp;quot;.mysql_escape_string($v).&amp;quot;'&amp;quot;;}&lt;br /&gt;        $qu=str_replace('^i', implode(', ', $fds), $qu);&lt;br /&gt;        $qu=str_replace('^v', implode(', ', $vas), $qu);&lt;br /&gt;    } else if (strpos($qu, 'UPDATE')!==false) {&lt;br /&gt;        $vas=array();&lt;br /&gt;        foreach ($fv as $f=&amp;gt;$v) {$vas[]=$f.'='.&amp;quot;'&amp;quot;.mysql_escape_string($v).&amp;quot;'&amp;quot;;}&lt;br /&gt;        $qu=str_replace('^u', implode(', ', $vas), $qu);&lt;br /&gt;    }&lt;br /&gt;    if ($sq) echo $qu.&amp;quot;&amp;lt;br&amp;gt;\n&amp;quot;;&lt;br /&gt;    $res=mysql_query($qu, $db['_l'][$link]);&lt;br /&gt;    if ($res===false) {echo '&amp;lt;b&amp;gt;'.mysql_error().&amp;quot;&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;\n&amp;quot;; return;}&lt;br /&gt;}&lt;br /&gt;function mesc($qu, $fv) {&lt;br /&gt;    if (strpos($qu, '%s')!==false) {&lt;br /&gt;        if (!is_array($fv)) return str_replace('%s', &amp;quot;'&amp;quot;.mysql_escape_string($fv).&amp;quot;'&amp;quot;, $qu);&lt;br /&gt;        else {foreach ($fv as $v) $qu=preg_replace('/%s/', &amp;quot;'&amp;quot;.mysql_escape_string($v).&amp;quot;'&amp;quot;, $qu, 1);}&lt;br /&gt;    } else if (strpos($qu, '%a')!==false) {&lt;br /&gt;        foreach ($fv as $i=&amp;gt;$v) $fv[$i]=&amp;quot;'&amp;quot;.mysql_escape_string($v).&amp;quot;'&amp;quot;;&lt;br /&gt;        $str=implode(', ', $fv); if (!$str) $str=0;&lt;br /&gt;        return str_replace('%a', $str, $qu);&lt;br /&gt;    } else return $qu;&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/312300893061964297-675072564832790153?l=mysrc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mysrc.blogspot.com/feeds/675072564832790153/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=312300893061964297&amp;postID=675072564832790153' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/312300893061964297/posts/default/675072564832790153'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/312300893061964297/posts/default/675072564832790153'/><link rel='alternate' type='text/html' href='http://mysrc.blogspot.com/2007/02/php-mysql-interface.html' title='PHP: MySQL interface'/><author><name>leoSr</name><uri>http://www.blogger.com/profile/09731107791619864392</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-312300893061964297.post-5926240885823859531</id><published>2007-02-06T23:29:00.000-08:00</published><updated>2007-03-13T08:18:09.895-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='xml'/><category scheme='http://www.blogger.com/atom/ns#' term='php'/><category scheme='http://www.blogger.com/atom/ns#' term='xml2array'/><category scheme='http://www.blogger.com/atom/ns#' term='array2xml'/><title type='text'>PHP: XML to Array and backwards</title><content type='html'>Here the XML with PHP solution: XML-&gt;Array and Array-&gt;XML.&lt;br /&gt;Work with it as with usual array.&lt;br /&gt;&lt;br /&gt;Format XML-&gt;Array&lt;br /&gt;_c - children&lt;br /&gt;_v - value&lt;br /&gt;_a - attributes&lt;br /&gt;&lt;br /&gt;This is 1.1 :)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Example #1 (1.xml):&lt;/span&gt;&lt;br /&gt;&lt;pre class=code&gt;&lt;br /&gt;&amp;lt;ddd&amp;gt;&lt;br /&gt;    &amp;lt;onemore dd=&amp;quot;55&amp;quot;&amp;gt;&lt;br /&gt;        &amp;lt;tt&amp;gt;333&amp;lt;/tt&amp;gt;&lt;br /&gt;        &amp;lt;tt ss=&amp;quot;s1&amp;quot;&amp;gt;555&amp;lt;/tt&amp;gt;&lt;br /&gt;        &amp;lt;tt&amp;gt;777&amp;lt;/tt&amp;gt;&lt;br /&gt;    &amp;lt;/onemore&amp;gt;&lt;br /&gt;    &amp;lt;two&amp;gt;sdf rr&amp;lt;/two&amp;gt;&lt;br /&gt;&amp;lt;/ddd&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;The code:&lt;br /&gt;&lt;pre class=code id=php1&gt;&lt;br /&gt;$xml=xml2ary(file_get_contents('1.xml'));&lt;br /&gt;print_r($xml); &lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Here is the Array result:&lt;br /&gt;&lt;pre class=code id=php2&gt;&lt;br /&gt;Array&lt;br /&gt;(&lt;br /&gt;   [ddd] =&gt; Array (&lt;br /&gt;           [_c] =&gt; Array (&lt;br /&gt;                   [onemore] =&gt; Array (&lt;br /&gt;                           [_a] =&gt; Array (&lt;br /&gt;                                   [dd] =&gt; 55&lt;br /&gt;                               )&lt;br /&gt;                           [_c] =&gt; Array (&lt;br /&gt;                                   [tt] =&gt; Array (&lt;br /&gt;                                           [0] =&gt; Array (&lt;br /&gt;                                                   [_v] =&gt; 333&lt;br /&gt;                                               )&lt;br /&gt;                                           [1] =&gt; Array (&lt;br /&gt;                                                   [_a] =&gt; Array (&lt;br /&gt;                                                           [ss] =&gt; s1&lt;br /&gt;                                                       )&lt;br /&gt;                                                   [_v] =&gt; 555&lt;br /&gt;                                               )&lt;br /&gt;                                           [2] =&gt; Array (&lt;br /&gt;                                                   [_v] =&gt; 777&lt;br /&gt;                                               )&lt;br /&gt;                                       )&lt;br /&gt;                               )&lt;br /&gt;                       )&lt;br /&gt;                   [two] =&gt; Array (&lt;br /&gt;                           [_v] =&gt; sdf rr&lt;br /&gt;                       )&lt;br /&gt;               )&lt;br /&gt;       )&lt;br /&gt;)&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Example #2: &lt;/span&gt;(1.xml as described before)&lt;br /&gt;&lt;pre class=code id=php3&gt;&lt;br /&gt;$xml=xml2ary(file_get_contents('1.xml'));&lt;br /&gt;$xml['ddd']['_c']['twomore']=$xml['ddd']['_c']['onemore'];&lt;br /&gt;$xml['ddd']['_c']['twomore']['_c']['tt'][0]['_v']='hello';&lt;br /&gt;echo ary2xml($xml);&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Will output result:&lt;br /&gt;&lt;pre class=code&gt;&lt;br /&gt;&amp;lt;ddd&amp;gt;&lt;br /&gt;    &amp;lt;onemore dd=&amp;quot;55&amp;quot;&amp;gt;&lt;br /&gt;        &amp;lt;tt&amp;gt;hello&amp;lt;/tt&amp;gt;&lt;br /&gt;        &amp;lt;tt ss=&amp;quot;s1&amp;quot;&amp;gt;555&amp;lt;/tt&amp;gt;&lt;br /&gt;        &amp;lt;tt&amp;gt;777&amp;lt;/tt&amp;gt;&lt;br /&gt;    &amp;lt;/onemore&amp;gt;&lt;br /&gt;    &amp;lt;two&amp;gt;sdf rr&amp;lt;/two&amp;gt;&lt;br /&gt;    &amp;lt;twomore dd=&amp;quot;55&amp;quot;&amp;gt;&lt;br /&gt;        &amp;lt;tt&amp;gt;hello&amp;lt;/tt&amp;gt;&lt;br /&gt;        &amp;lt;tt ss=&amp;quot;s1&amp;quot;&amp;gt;555&amp;lt;/tt&amp;gt;&lt;br /&gt;        &amp;lt;tt&amp;gt;777&amp;lt;/tt&amp;gt;&lt;br /&gt;    &amp;lt;/twomore&amp;gt;&lt;br /&gt;&amp;lt;/ddd&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;THE Sources: :)&lt;/b&gt;&lt;br /&gt;&lt;pre class=code id=php4&gt;&lt;br /&gt;/*&lt;br /&gt;    Working with XML. Usage: &lt;br /&gt;    $xml=xml2ary(file_get_contents('1.xml'));&lt;br /&gt;    $link=&amp;amp;$xml['ddd']['_c'];&lt;br /&gt;    $link['twomore']=$link['onemore'];&lt;br /&gt;    // ins2ary(); // dot not insert a link, and arrays with links inside!&lt;br /&gt;    echo ary2xml($xml);&lt;br /&gt;*/&lt;br /&gt;&lt;br /&gt;// XML to Array&lt;br /&gt;function xml2ary(&amp;amp;$string) {&lt;br /&gt;    $parser = xml_parser_create();&lt;br /&gt;    xml_parser_set_option($parser, XML_OPTION_CASE_FOLDING, 0);&lt;br /&gt;    xml_parse_into_struct($parser, $string, $vals, $index);&lt;br /&gt;    xml_parser_free($parser);&lt;br /&gt;&lt;br /&gt;    $mnary=array();&lt;br /&gt;    $ary=&amp;amp;$mnary;&lt;br /&gt;    foreach ($vals as $r) {&lt;br /&gt;        $t=$r['tag'];&lt;br /&gt;        if ($r['type']=='open') {&lt;br /&gt;            if (isset($ary[$t])) {&lt;br /&gt;                if (isset($ary[$t][0])) $ary[$t][]=array(); else $ary[$t]=array($ary[$t], array());&lt;br /&gt;                $cv=&amp;amp;$ary[$t][count($ary[$t])-1];&lt;br /&gt;            } else $cv=&amp;amp;$ary[$t];&lt;br /&gt;            if (isset($r['attributes'])) {foreach ($r['attributes'] as $k=&amp;gt;$v) $cv['_a'][$k]=$v;}&lt;br /&gt;            $cv['_c']=array();&lt;br /&gt;            $cv['_c']['_p']=&amp;amp;$ary;&lt;br /&gt;            $ary=&amp;amp;$cv['_c'];&lt;br /&gt;&lt;br /&gt;        } elseif ($r['type']=='complete') {&lt;br /&gt;            if (isset($ary[$t])) { // same as open&lt;br /&gt;                if (isset($ary[$t][0])) $ary[$t][]=array(); else $ary[$t]=array($ary[$t], array());&lt;br /&gt;                $cv=&amp;amp;$ary[$t][count($ary[$t])-1];&lt;br /&gt;            } else $cv=&amp;amp;$ary[$t];&lt;br /&gt;            if (isset($r['attributes'])) {foreach ($r['attributes'] as $k=&amp;gt;$v) $cv['_a'][$k]=$v;}&lt;br /&gt;            $cv['_v']=(isset($r['value']) ? $r['value'] : '');&lt;br /&gt;&lt;br /&gt;        } elseif ($r['type']=='close') {&lt;br /&gt;            $ary=&amp;amp;$ary['_p'];&lt;br /&gt;        }&lt;br /&gt;    }    &lt;br /&gt;    &lt;br /&gt;    _del_p($mnary);&lt;br /&gt;    return $mnary;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;// _Internal: Remove recursion in result array&lt;br /&gt;function _del_p(&amp;amp;$ary) {&lt;br /&gt;    foreach ($ary as $k=&amp;gt;$v) {&lt;br /&gt;        if ($k==='_p') unset($ary[$k]);&lt;br /&gt;        elseif (is_array($ary[$k])) _del_p($ary[$k]);&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;// Array to XML&lt;br /&gt;function ary2xml($cary, $d=0, $forcetag='') {&lt;br /&gt;    $res=array();&lt;br /&gt;    foreach ($cary as $tag=&amp;gt;$r) {&lt;br /&gt;        if (isset($r[0])) {&lt;br /&gt;            $res[]=ary2xml($r, $d, $tag);&lt;br /&gt;        } else {&lt;br /&gt;            if ($forcetag) $tag=$forcetag;&lt;br /&gt;            $sp=str_repeat(&amp;quot;\t&amp;quot;, $d);&lt;br /&gt;            $res[]=&amp;quot;$sp&amp;lt;$tag&amp;quot;;&lt;br /&gt;            if (isset($r['_a'])) {foreach ($r['_a'] as $at=&amp;gt;$av) $res[]=&amp;quot; $at=\&amp;quot;$av\&amp;quot;&amp;quot;;}&lt;br /&gt;            $res[]=&amp;quot;&amp;gt;&amp;quot;.((isset($r['_c'])) ? &amp;quot;\n&amp;quot; : '');&lt;br /&gt;            if (isset($r['_c'])) $res[]=ary2xml($r['_c'], $d+1);&lt;br /&gt;            elseif (isset($r['_v'])) $res[]=$r['_v'];&lt;br /&gt;            $res[]=(isset($r['_c']) ? $sp : '').&amp;quot;&amp;lt;/$tag&amp;gt;\n&amp;quot;;&lt;br /&gt;        }&lt;br /&gt;        &lt;br /&gt;    }&lt;br /&gt;    return implode('', $res);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;// Insert element into array&lt;br /&gt;function ins2ary(&amp;amp;$ary, $element, $pos) {&lt;br /&gt;    $ar1=array_slice($ary, 0, $pos); $ar1[]=$element;&lt;br /&gt;    $ary=array_merge($ar1, array_slice($ary, $pos));&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/312300893061964297-5926240885823859531?l=mysrc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mysrc.blogspot.com/feeds/5926240885823859531/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=312300893061964297&amp;postID=5926240885823859531' title='60 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/312300893061964297/posts/default/5926240885823859531'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/312300893061964297/posts/default/5926240885823859531'/><link rel='alternate' type='text/html' href='http://mysrc.blogspot.com/2007/02/php-xml-to-array-and-backwards.html' title='PHP: XML to Array and backwards'/><author><name>leoSr</name><uri>http://www.blogger.com/profile/09731107791619864392</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>60</thr:total></entry></feed>
