Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: explode

Сообщения:  [1-10]   [11-11] 

 
 автор: Хулиган   (27.06.2006 в 15:42)   письмо автору
 
   для: cheops   (27.06.2006 в 12:00)
 

на printf никаких ошибок не выдаёт, просто работает неправильно.
А php у меня 4.4.2, устанавливал в составе Denwer 2.

P.S.
Ещё глюк c printf: Переменная $price грузится из базы данных из поля decimal(10,2). значение - 125.00.
printf("%.1f", $price*1) выдаёт 125.05 :-( Откуда прилепилось 0.05 ?

Пробовал переставить php - тот же результат.
Рисовать свои реализации explode и printf ?

   
 
 автор: cheops   (27.06.2006 в 12:00)   письмо автору
 
   для: Хулиган   (27.06.2006 в 03:14)
 

Хм... а у вас какая версия PHP?

   
 
 автор: valenok   (27.06.2006 в 09:46)   письмо автору
 
   для: Хулиган   (27.06.2006 в 03:14)
 

У меня всё работает.
Какие ошибки тебе выдаёт?
И уровня E~notice тоже..

   
 
 автор: Хулиган   (27.06.2006 в 03:14)   письмо автору
 
   для: cheops   (27.06.2006 в 01:47)
 

А может, просто у меня php сломался? Вот ещё один баг нашёл:
print htmlspecialchars(printf("%.2f", $sum)); - выводит 3 знака после запятой вместо двух :(
приходится форматтер описывать как "%.1f", чтобы было 2 знака...

   
 
 автор: Хулиган   (27.06.2006 в 02:41)   письмо автору
 
   для: cheops   (27.06.2006 в 01:47)
 

В html-коде <br> нету. Да и не должно его там быть: предыдущий explode разбивает по <br> и ликвидирует его. В html страницы стоит 001_003_002_1. А второй explode (тот, который не работает), разбивает по символу подчёркивания _.
Поэтому <br> есть или его нет - не имеет значения. Если он есть, то последний элемент массива будет "1<br>". Но до него дело не доходит: уже на втором элементе "003" вылазит ошибка.

В принципе разбиение сделал вручную очень просто:

          $tbl_name = substr($tovar, 0, 3);
          $cat_id = substr($tovar, 4, 3);
          $tov_id = substr($tovar, 8, 3);
          $tov_count = substr($tovar, 12, 3);

но хотелось бы понять, где грабли, чтобы не наступить в случае, где substr не поможет.

   
 
 автор: cheops   (27.06.2006 в 01:47)   письмо автору
 
   для: Хулиган   (27.06.2006 в 01:04)
 

Он именно 001_003_002_1<br> или 001_003_002_1 и перевод строки? Посмотрите исходный код страницы - символы < и > там не изменены?

   
 
 автор: Хулиган   (27.06.2006 в 01:04)   письмо автору
 
   для: valenok   (27.06.2006 в 00:02)
 

Если присвоить переменной непосредственно $senddata ="001_003_002_1<br>"; та же ошибка. Проверка на empty тоже ничего не даёт - переменная не пустая.
А если заменить
$tovar_subarr = explode('_', $tovar);
на
$tovar_subarr = explode('_', '001_003_002_1<br>');
то ошибки нет.

При этом непосредственно перед explode стоит echo ($tovar), и выводит 001_003_002_1<br>

Странно, что теперь, самому разбить строку через strtok?

   
 
 автор: valenok   (27.06.2006 в 00:02)   письмо автору
 
   для: Хулиган   (26.06.2006 в 22:32)
 


<?
$senddata
='003_001_002_1<br>'
$tovar_arr explode('<br>'$senddata); 
foreach(
$tovar_arr as $tovar){ 
   if(empty(
$tovar)){continue;}
   
$tovar_subarr=explode('_',$tovar);
  
   
$tbl_name "'".$tovar_subarr[0]."'"
   
$cat_id "'".$tovar_subarr[1]."'"
   
$tov_id "'".$tovar_subarr[2]."'"
   
$tov_count $tovar_subarr[3]; 

?>

   
 
 автор: cheops   (26.06.2006 в 23:15)   письмо автору
 
   для: Хулиган   (26.06.2006 в 22:32)
 

Напишите вместо
<?php
$senddata
=$_GET["send"];
?>

так
<?php
$senddata 
="001_003_002_1<br>"
?>

ситуация та же?

   
 
 автор: Ziq   (26.06.2006 в 22:54)   письмо автору
 
   для: Хулиган   (26.06.2006 в 22:32)
 

---

   

Сообщения:  [1-10]   [11-11] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования