php чтение начинается с нуля

Можете ли вы мне помочь ... много лет назад мой друг дал мне код 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.
 }

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

благодарю вас


person jones    schedule 26.12.2009    source источник


Ответы (2)


Вы должны использовать внутренние функции 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'] );
}
person poke    schedule 26.12.2009
comment
Спасибо за ваш хороший вклад... я сделаю ваши предложения по этой теме... если вы хотите, у меня есть еще одна ссылка, которую, возможно, вы сообщите там stackoverflow.com/questions/1960441/ - person jones; 27.12.2009
comment
Привет, Поке, Все, что ты набрал, я сделал, но ничего не меняю, братан. - person jones; 28.12.2009
comment
Привет, Поке... как, если я отправлю тебе полный сценарий? потому что я новичок в php и просто ищу помощи, если вы согласны, если я отправлю скрипт по электронной почте. С Уважением - person jones; 05.01.2010
comment
Просто загрузите его на pastebin.com и добавьте ссылку в свой вопрос. - person poke; 05.01.2010
comment
Извините, что я не ответил, однако я предлагаю вам открыть новый вопрос об этом, так как я в настоящее время очень занят и не могу так быстро просмотреть код. Открывая новый вопрос, вы приглашаете других помочь вам. - person poke; 08.01.2010
comment
О... нет проблем, просто сделайте свою работу 1-й и, надеюсь, все будет хорошо, спасибо - person jones; 09.01.2010

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

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

к этому

if(intval($teks["verse_end"]) <= intval($teks["verse"]))
person 0scar    schedule 26.12.2009
comment
Спасибо за ваш хороший вклад... я сделаю ваши предложения по этой теме... если вы хотите, у меня есть еще одна ссылка, которую, возможно, вы сообщите там stackoverflow.com/questions/1960441/ - person jones; 27.12.2009
comment
Привет, Оскар, ты тоже написал, что я сделал все, но ничего не происходит, tq - person jones; 28.12.2009