чтение php начинается с нуля - PullRequest
0 голосов
/ 26 декабря 2009

Можете ли вы помочь мне ... много лет назад мой друг дал мне код сценария php, представленный ниже, теперь я хочу изменить его, может читать нумерацию с нуля

существует только возможное чтение 1: 1, 10: 200 и т. Д., Но я хочу также сделать возможным чтение из 01:01, 0000002: 0120 и т. Д ...

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.
 }

//--------------

спасибо

Ответы [ 2 ]

1 голос
/ 26 декабря 2009

Вы должны использовать внутренние функции php, такие как is_numeric и empty. И воздержитесь от использования конкатенации строк с пустыми строками (по любой причине), вместо этого просто убедитесь, что эти константы (я думаю, что они являются константами) совместимы, и все в порядке.

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'] );
}
0 голосов
/ 26 декабря 2009

Я сделаю здесь дикое предположение, потому что я не совсем понял вопрос, но я думаю, вы должны изменить это:

if($teks["verse_end"] <= $teks["verse"])

к этому

if(intval($teks["verse_end"]) <= intval($teks["verse"]))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...