ANTICHAT

ANTICHAT (https://forum.antichat.io/index.php)
-   PHP (https://forum.antichat.io/forumdisplay.php?f=37)
-   -   небольшой вопрос (https://forum.antichat.io/showthread.php?t=139261)

rubik-nerubik 03.09.2009 23:29

небольшой вопрос
 
как мне реализовать путём пхп
такое
есть строка:
abadada
в неё надо вставить символ |, а именно так:
a|b|a|d|a|d|a

scrat 03.09.2009 23:42

ну тут либо циклом идти с запоминанием символов, либо преобразовывать в массив, и в него добавлять элементы(array merge какой-нибудь)

rubik-nerubik 03.09.2009 23:45

ну мож набросаешь?

scrat 03.09.2009 23:49

не, это как-то заёбно, лучше юзать что-то типа:

PHP код:

function insert_char($index, $str, $char) //добавляет символ $char в строку $str на позицию $index
{
    
$str_prev = substr($str, $index, -$index);
    
$str_next = substr($str, $index, strlen($str) - $index);
    return 
$str_prev.$char.$str_next; //возвращаем новую строку, не меняя предыдущую
} 


rubik-nerubik 03.09.2009 23:53

че-то как-то отказывается работать) на денвере точно)

Kaimi 04.09.2009 00:01

PHP код:

$str = 'fsdgssdhs';
$str = preg_replace('/(.{1})/', '$1|', $str);
print 
substr($str, 0, strlen($str)-1); 


rubik-nerubik 04.09.2009 00:02

каими респект и уважуха)

Sharky 04.09.2009 00:07

PHP код:

$str = 'abadada';
$chars = preg_split('//', $str, -1, PREG_SPLIT_NO_EMPTY);
$imp = implode("|", $chars);

echo 
$imp; 


Solker 04.09.2009 13:32

Тоже предложу свой вариант ответа =)
Зачем регулярные, любая строка это массив.

PHP код:

$str = 'abadada';
for(
$i=0; $i<strlen($str); $i++) 
   
$finish .= $str[$i]."|";
echo 
trim($finish,'|'); 



Время: 02:11