Я «унаследовал» страницу с ошибкой PHP. Я не специалист этого языка, но я думаю, что я нашел происхождение ошибки. Внутри цикла, страница отправляет отформатированную строку на сервер: строка я нашел на странице HTML, как это:PHP: получить числовое значение в конце данной отформатированной строки
2011-09-19__full_1
так, кажется, у нас есть три части:
- дата (0,10);
- строка (10,6);
- окончательное число (17,1);
Код ручках эта ситуация выглядит следующим образом:
$datagrid[] = array("date"=>substr($post_array_keys[$i], 0, 10),"post_mode"=>substr($post_array_keys[$i], 10, 6),"class_id"=>substr($post_array_keys[$i], 17, 1),"value"=>$_POST[$post_array_keys[$i]]);
Что происходит: окончательное число может содержать более одного символа, поэтому этот кусок:
"class_id"=>substr($post_array_keys[$i], 17, 1)
является неверно, потому что, похоже, он возвращает только один символ, начиная с 17-го (и это, похоже, вызывает странное поведение на веб-сайте).
Будучи целым номером последней части строки, чтобы получить все число , могу ли я безопасно изменить эту строку таким образом?
"class_id"=>substr($post_array_keys[$i], 17, strlen($post_array_keys[$i])-17);
Не знаю, что вы хотите услышать, но только автор может дать вам четкий ответ. Или некоторое время, проведенное в анализе кода. @Jon: 'offset = 17' и' length-17' _is_ от 17 до конца.Однако, более очевидно, когда вы (@Lotus) просто опускаете третий параметр (что означает «до конца») – KingCrunch
Пожалуйста, добавьте 'var_dump (array (" date "=> substr ($ post_array_keys [$ i], 0, 10), "post_mode" => substr ($ post_array_keys [$ i], 10, 6), "class_id" => substr ($ post_array_keys [$ i], 17, 1), "value" => $ _ POST [$ post_array_keys [$ i]])); 'на ваше сообщение, чтобы увидеть проблему полностью – Timur
@KingCrunch Ах да, интересно, с какой функцией меня смешивают. Ну что ж. Отредактировано та. Вы можете использовать explode() (хотя двойное подчеркивание может быть болью). Или другой альтернативой было бы регулярное выражение, которое было бы достаточно простым. Просто говорю'. –