@Breezer95

Как склеить 2 файла в 1?

В 1 файле есть текст:
color:green
color:red
color:blue и ...
Во 2м файле green:apple
red:cherry
blue:sky Подскажите как сделать так что бы в 3й файл записывался в таком виде:
color:apple
color:cherry
color:sky Как организовать это на php?
Пытался сделать по такому принципу но с большими файлами очень долго идет процесс
while (!feof($file_handle)) {
$cont = file_get_contents("1.txt");
$fp = fopen ("1.txt", "w");
  $array = '';
    $line = fgets($file_handle);
  $str = preg_match("/^(.+?):(.+?)$/",$line,$array);
  $one = $array[1];
  $two = $array[2];
  $textout = preg_replace("/$one/", "$two", $cont);
  file_put_contents("1.txt",$textout);
  fclose($fp);
  }
  • Вопрос задан
  • 196 просмотров
Пригласить эксперта
Ответы на вопрос 2
@kirill-93
Бред какой-то.
В первом файле цвета, во втором непонятно что. Если их нужно как-то слить, то откуда в третьем файле должно взяться apple?
Ответ написан
Ninazu
@Ninazu
А база данных, не вариант? Зачем этот велосипед?
sqlfiddle.com/#!9/9b7f4/2/0

CREATE TABLE IF NOT EXISTS `first` (
  `name` varchar(50) CHARACTER SET utf8 NOT NULL,
  `key` varchar(50) CHARACTER SET utf8 NOT NULL,
  KEY `key` (`key`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

CREATE TABLE IF NOT EXISTS `second` (
  `key` varchar(50) CHARACTER SET utf8 DEFAULT NULL,
  `value` varchar(50) CHARACTER SET utf8 DEFAULT NULL,
  KEY `key` (`key`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

INSERT INTO `first` (`name`, `key`) VALUES
	('color', 'green'),
	('color', 'red'),
	('color', 'blue');

INSERT INTO `second` (`key`, `value`) VALUES
	('green', 'apple'),
	('red', 'cherry'),
	('blue', 'sky');

SELECT 
	CONCAT(f.`name`,':',s.value) AS result,
FROM `first` AS f
	INNER JOIN `second` AS s ON s.`key` = f.`key`;
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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