volmav
@volmav

Как средствами php поменять местами?

Всем привет.
Как средствами php сделать следующее:
Есть список в txt
Фамилия Имя
Фамилия Имя


Нужно
Имя Фамилия
Имя Фамилия

Спасибо.
  • Вопрос задан
  • 2421 просмотр
Решения вопроса 1
Dimitriys
@Dimitriys
<?php
$aData = file('original.txt');
$sNew = '';
foreach($aData as $one)
	{
	$one = explode(' ', trim($one));
	$sNew .= $one[1].' '.$one[0].PHP_EOL;
	}
file_put_contents('convert.txt', $sNew);
?>
Ответ написан
Пригласить эксперта
Ответы на вопрос 4
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
//строка в $s
$s=explode($s,'/\s+\g');
$s=$s[1]+' '+$s[0];
Ответ написан
Nidora
@Nidora
Бонус 200 руб всем новым клиентам! VDS - 149 руб
<?php 
  $s = 'Имя Фамилия.'; 
  $p = '#([а-яё]+) и ([а-яё]+)#ui'; 
  $r = '$2 и $1'; 
  $s = preg_replace($p,$r,$s); 
  echo $s; 
?>


если кодировка текста не utf8 - заменить #ui на #i
Ответ написан
@3ton
Самый топорный метод, без фанатизма.

<?php
$handle = @fopen("/tmp/inputfile.txt", "r");
$fp = @fopen("/tmp/outputfile.txt", "a"); 

if ($handle) {
    while (($buffer = fgets($handle, 4096)) !== false) {
        $arr = explode(' ', $buffer);
        $newtext = $arr[1].' '.$arr[0];
        fwrite($fp, $newtext);
    }
    if (!feof($handle)) {
        echo "Error: unexpected fgets() fail\n";
    }
    fclose($handle);
}
fclose($fp);

Если необходимо получить результат в том же файле что и исходный, предлагаю в конце добавить переименования дабы исходный получил приставку .bak (на всякий случай), а результирующий - имя исходного.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы