php lecture partir de zéro numéro de dossier
Question
Pouvez vous me aider ... Il y a plusieurs années, mon ami m'a donné le code de script php présenté ci-dessous, maintenant je veux changer peut lire au nombre de partir de zéro
existant seulement possible de lire 1: 1, 10: 200 etc .. mais je veux aussi faire lecture possible à partir de 01h01, 0.000.002: 0120 etc ...
function is_valid_number($sesuatu)
{
if(preg_match("/^([0-9]+)$/", $sesuatu)) return(TRUE);
else return(FALSE);
}
//--------------
if(isset($teks["chapter"]) && (is_valid_number($teks["chapter"]) === FALSE))
{
if(strcmp($teks["chapter"], "") != 0) echo "".Chapter_need_number.""; //bhs
unset($teks["chapter"]); //Just get rid of it.
}
if(isset($teks["verse"]) && (is_valid_number($teks["verse"]) === FALSE))
{
//There is a non-numerical character in verse. We /should/ be able to examine it for range.
$temp_array = explode("-", $teks["verse"], 2);
if(isset($temp_array[0]) && isset($temp_array[1]) && is_valid_number($temp_array[0]) === TRUE && is_valid_number($temp_array[1]) === TRUE)
{
$teks["verse"] = $temp_array[0];
$teks["verse_end"] = $temp_array[1];
// echo ("<h3>".Verse_range." \"" . $temp_array[0] . "\" - \"" . $temp_array[1] . "\"</h3>\n"); //bhs
if($teks["verse_end"] <= $teks["verse"])
{
echo "".Verse_range_need_larger_ending."";//bhs
unset($teks["verse"]);
unset($teks["verse_end"]);
}
}
else
{
if(strcmp($teks["verse"], "") != 0) echo "".Verse_need_number.""; //bhs
unset($teks["verse"]); //Just get rid of it.
}
}
if(isset($teks["verse"]) && !isset($teks["chapter"]))
{
echo "".Verse_need_chapter.""; //bhs
unset($teks["verse"]); //Just get rid of it.
}
//--------------
Merci
La solution
Vous devez utiliser des fonctions internes php comme is_numeric
et empty
. Et s'abstenir d'utiliser concaténation de chaîne avec des chaînes vides (pour une raison quelconque), au lieu simplement faire en sorte que ces constantes (je suppose qu'ils sont des constantes) sont compatibles et tout va bien.
if ( isset( $teks['chapter'] ) && !is_numeric( $teks['chapter' ) )
{
if ( !empty( $teks['chapter'] ) )
echo Chapter_need_number;
unset( $teks['chapter'] );
}
if ( isset( $teks['verse'] ) && !is_numeric( $teks['verse'] ) )
{
$temp_array = explode( '_', teks['verse'], 2 );
if ( count( $temp_array ) >= 2 && is_numeric( $temp_array[0] ) && is_numeric( $temp_array[1] ) )
{
$teks['verse'] = intval( $temp_array[0] );
$teks['verse_end'] = intval( $temp_array[1] );
if ( teks['verse_end'] <= teks['verse'] )
{
echo Verse_range_need_larger_ending;
unset( $teks['verse'] );
unset( $teks['verse_end'] );
}
}
else
{
if ( !empty( $teks['verse'] ) )
echo Verse_need_number;
unset( $teks['verse'] );
}
}
if ( isset( $teks['verse'] ) && !isset( $teks['chapter'] ) )
{
echo Verse_need_chapter;
unset( $teks['verse'] );
}
Autres conseils
Je vais prendre une conjecture sauvage ici, cela parce que je ne comprends pas bien la question, mais je pense que vous devriez changer ceci:
if($teks["verse_end"] <= $teks["verse"])
à cette
if(intval($teks["verse_end"]) <= intval($teks["verse"]))