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

Форум PHP

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

 

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

вид форума:
Линейный форум Структурный форум

тема: Форматирование строки(implode)
 
 автор: Eser   (10.08.2010 в 11:41)   письмо автору
 
 

Не знаю как ковычки в сроку добавить
$str2 = implode(",",$array)
У меня получается значение1,значение2, значение3 ну тд.
А как добавить еще одинарные ковычки чтоб было 'значение1','значение2', 'значение3'

  Ответить  
 
 автор: Eser   (10.08.2010 в 11:49)   письмо автору
 
   для: Eser   (10.08.2010 в 11:41)
 

Ой сори забыл про поиск
$str2 = "'" . implode("', '", $arr) . "'";

  Ответить  
 
 автор: sim5   (10.08.2010 в 11:50)   письмо автору
 
   для: Eser   (10.08.2010 в 11:41)
 

А ни я ли вам пример кода показывал, где такое делается? Крайние кавычки, а между ними implode с объедением по кавычкам с запятой.

  Ответить  
 
 автор: Trianon   (10.08.2010 в 11:55)   письмо автору
 
   для: sim5   (10.08.2010 в 11:50)
 

И будет в результате ересь мерзкая.
Что, впрочем, автор и просил.

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

Я ему показывал ранее иное, почему у него вопрос возник отдельно, и для чего это ему надо, сказать трудно. Если для базы, то да, не едиными кавычками... Но кто же их значет, чего они желают, на чем они гадают, а кто же это знает... )

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

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

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

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

  Ответить  
 
 автор: 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: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:59)   письмо автору
 
   для: sim5   (10.08.2010 в 12:43)
 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  Ответить  
 
 автор: Красная_шляпа   (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 в 14:58)   письмо автору
 
   для: Красная_шляпа   (10.08.2010 в 14:47)
 

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

  Ответить  
Rambler's Top100
вверх

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