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

Форум PHP

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

 

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

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

тема: Форматирование строки(implode)

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

 
 автор: sim5   (10.08.2010 в 14:58)   письмо автору
 
   для: Красная_шляпа   (10.08.2010 в 14:47)
 

Это зачем? Мне этого и даром не нать. ;-)

  Ответить  
 
 автор: Красная_шляпа   (10.08.2010 в 14:47)   письмо автору
 
   для: sim5   (10.08.2010 в 13:20)
 


// <?php
$s 
"";
if (!empty(
$a)) {
$a array_map("addslashes"$a);
$s " ' ".implode(" ' , ' ",$a )." ' ";
}
echo 
$s."<br>\n";

  Ответить  
 
 автор: sim5   (10.08.2010 в 13:20)   письмо автору
 
   для: Trianon   (10.08.2010 в 13:12)
 

>А это уж вопрос совершенно не имеющий отношения к. :))
>Мало ли кому чего и как?

Ну если так, тогда.... ))

>Надежный метод должен работать и в этом случае.

Так лично я просто проверю массив и все, вместо написания метода. )

Ну да, кавычки вокруг implode, это к строке, а те что var_dump показывает вокруг еще, они к строке отношения не имеют:
<?
$s 
'\'asd\'';
var_dump($s); // string ''asd'' (length=5)

  Ответить  
 
 автор: Trianon   (10.08.2010 в 13:12)   письмо автору
 
   для: sim5   (10.08.2010 в 13:04)
 

>А зачем пустой массив объеденять? )

А это уж вопрос совершенно не имеющий отношения к. :))
Мало ли кому чего и как?
Надежный метод должен работать и в этом случае.

>var_dump отображает кавычки по бокам, но они к строке непосредственно отношения не имеют, учитывается длина строки.

кавычки, укладываемые вокруг implode, вот так, как Вы показали
$a = "'".implode("','", $a)."'";
явно имеют отношение именно к строке.

  Ответить  
 
 автор: sim5   (10.08.2010 в 13:04)   письмо автору
 
   для: Trianon   (10.08.2010 в 12:59)
 

А зачем пустой массив объеденять? )
var_dump отображает кавычки по бокам, но они к строке непосредственно отношения не имеют, учитывается длина строки.

  Ответить  
 
 автор: Trianon   (10.08.2010 в 12:59)   письмо автору
 
   для: sim5   (10.08.2010 в 12:43)
 

при пустом массиве всё равно лишние.
собственно, я показал, как надо.
Вариант $d.

  Ответить  
 
 автор: sim5   (10.08.2010 в 12:43)   письмо автору
 
   для: Trianon   (10.08.2010 в 12:35)
 

А вот в чем дело, добавление лишних крайных...
<?
$a 
= array(1,2,3,4,5,6);
$a "'".implode("','"$a)."'";
echo 
$a// '1','2','3','4','5','6' 
var_dump($a); // string ''1','2','3','4','5','6'' (length=23)

так что все нормально будет.

  Ответить  
 
 автор: Trianon   (10.08.2010 в 12:35)   письмо автору
 
   для: sim5   (10.08.2010 в 12:08)
 

ну как
<?php

  $a 
= array();
  echo 
'<pre>';

  for(
$i 0$i 4$a[] = ++$i)
  {
    echo 
'<hr>';
      echo 
"elements:$i<br>\$a:"var_dump($a);      echo '<br>';

      
$b implode(','$a);
      echo 
'$b:';       var_dump($b);     echo '<br>';
      
$c "'".implode("','"$a)."'";
      echo 
'$c:';      var_dump($c);   echo '<br>';
      
$d implode(",",
              
array_map(
                  
create_function('$v',
                      
'{    return("\'".addslashes($v)."\'");     }'
                
),
                
$a
            
)
        );
      echo 
'$d:';      var_dump($d);    echo '<br>';
  }

?>


видите на первом шаге какая кака?
elements:0 
$a:array(0) {
}
$b:string(0) ""
$c:string(2) "''"
$d:string(0) ""

$c показывает наличие одного пустого элемена.
А их нет. Вообще нет.

addslashes я уж так добавил. В качестве последней точки над i . Не в нем дело.

  Ответить  
 
 автор: sim5   (10.08.2010 в 12:08)   письмо автору
 
   для: Trianon   (10.08.2010 в 12:06)
 

Что-то я не понял.

  Ответить  
 
 автор: Trianon   (10.08.2010 в 12:06)   письмо автору
 
   для: sim5   (10.08.2010 в 12:01)
 

да для чего ни плюнь - не отдельными.
Но даже если закрыть глаза на экранирование - в краевом случае пустого массива меняется число объектов.

  Ответить  

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

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

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