All pastes #910448 Raw Edit

Stuff

public text v1 · immutable
·published 2008-02-19 23:10 UTC
rendered paste body
j'ai trouvé phpsane interface web un peu buggé pour faire une interface web pour le scanner...

j'essaie de corriger le code php... si quelqu'un peut m'aider à déchiffrer
c'est pour remplir une liste déroulante

-------------------------
C'est le résultat de la première ligne de code
 /usr/bin/scanimage --help | grep -m 1 resolution

    --resolution 50..2400dpi [50]
-------------------------
// retrieve possible resolutions
$res_list = `/usr/bin/scanimage --help | grep -m 1 resolution`;
$start=strpos($res_list,"n")+2;
$length = strpos($res_list,"dpi") -$start;
$list = "".substr($res_list,$start,$length)."";
unset($start);
unset($length);
// change "|" separated string $list into array $resolution values.
$resolution = explode("|",$list);
//generate html selectbox and store in string $res_box
$res_box = html_selectbox(resolution,$resolution,$resolution);
//display the select box
echo "$res_box"
----------------------------
le code de  html selectbox


<?PHP
/**
 * generates html select dropdown list with options
 * if values is two dimensional then adds optgroup too
 *
 * @param       string  $name                   selectbox name and id
 * @param       array           $values         options
 * @param       mixed           $selected       selected option
 * @param       array           $attributes additonal attributes
 *
 * @return      string  html source with selectbox
 */
function html_selectbox($name, $values, $selected=NULL, $attributes=array())
{
        $attr_html = '';
        if(is_array($attributes) && !empty($attributes))
        {
                foreach ($attributes as $k=>$v)
                {
                        $attr_html .= ' '.$k.'="'.$v.'"';
                }
        }

        $output = '<select name="'.$name.'" id="'.$name.'"'.$attr_html.'>'."\n";
        if(is_array($values) && !empty($values))
        {
                foreach($values as $key=>$value)
                {
                        if(is_array($value))
                        {
                                $output .= '<optgroup label="'.$key.'">'."\n";
                                foreach($value as $k=>$v)
                                {
                                        $sel = $selected==$k ? ' selected="selected"' : '';
                                        $output .= '<option value="'.$k.'"'.$sel.'>'.$v.'</option>'."\n";
                                }
                                $output .= '</optgroup>'."\n";
                        }
                        else
                        {
                                $sel = $selected==$key ? ' selected="selected"' : '';
                                $output .= '<option value="'.$value.'"'.$sel.'>'.$value.'</option>'."\n";
                        }
                }
        }
        $output .= "</select>\n";

        return $output;
}

?>
------------------------------

j'ai une seule ligne dans la liste déroulante avec 50..2400

j'ai essayé de mettre 
$res_box = html_selectbox(resolution,$resolution,,$resolution);
càdire de rajouter une virgule pour avoir les 4 paramètres

cela me renvoie page blanche

Sur la page il y a 3 listes déroulantes et toutes les 3 buggués
J'ai réussi pour 2, mais celle la comprend pas ou est l'erreur