Как я могу последовательно заменить данные из 2-го файла в 1-файл, сохранив исходный файл?(РНР) - PullRequest
0 голосов
/ 12 февраля 2019

Я делаю мессенджер-бот на PHP.Для одной цели.Как я могу сделать строку «Заменить и повторить», используя второй файл data_file, который имеет столбец коротких имен (31,102).* Только добавление в исходный файл с новыми данными из data_file.Я искал и нашел много похожих запросов, но 1) они создали отдельные файлы для каждого добавления данных.и / или 2) они не использовали отдельный файл data_file для замены.Спасибо.

Я пытался изменить предыдущий скрипт, который был сделан в jq (увы, просто попытка, это не сработало), я думаю о regex, sed или awk?Есть более 31 000 строк.

#!/bin/bash

n=1
cat names | while read value; do
jq <bot.php >"$value$n" ".name = \"$value\""
((n++))
done

В моей версии я удалил значение $ (приращение).заменил его значением.пытаясь сохранить те же правки в исходном файле (bot.php).

более или менее, я хотел бы взять этот бит php-кода:

if($messageText == "name") {
$answer = "none";
}

и использоватьвторой файл data_file, такой как: BOOK1 BOOK2 и т. д. Строки 1000.

и в итоге получим следующее:

[..]
if($messageText == "BOOK1") {
$answer = "none";
}

if($messageText == "BOOK2") {
$answer = "none";
}

во-первых, я бы подумал, что какая-то внешняя переменная или строковый методлучше, чем добавлять 31 000 строк в один файл PHP.конечно.что, возможно, сработает что-то вроде ?: читать в переменной $.?

n=1
$name = (file_get_contents('./data_file'+1)

if($messageText == "$name") {
$answer = "none";
}

Другой способ объяснения этого может быть следующим:

template_file:

<?php

if($messageText == "book") {
    $answer = "verse";
}

?>

читает "template_file" меняет книгу на строку 1 файла names_file, строка 1 меняет стих на строку 1 строки verses_file, строка 1 вставляет "оригинал_файла" в строку # 42

повторяется: изменяется "template_file" изменяется {старая книга}"names_file # 1" в строку names_files строка 2 заменяет {старый стих} строка # 1 verses_file в строку 2 файла стихов вставляет "исходный_файл" в строку NOW № 46 (на 6 строк ниже исходного)

повторяется: изменяется "template_file"преобразует {старая книга}" names_file # 2 "в строку 3 names_files меняет {старая строка} строка # 2 verses_file в строку 3 файла стихов вставляет" исходный_файл "в строку № 52 СЕЙЧАС (еще 6 строк по сравнению с оригиналом)

повторяет все длина names_file и verses_file.(Ровно по 31 102 строки)

  • Я также пытаюсь решить, есть ли более эффективный способ?вместо перечитывания (изменения параметров) переписывания.

Я действительно не против, если мне нужно создать несколько каталогов или «дополнительные» файлы.Пространство и время не являются проблемой. Спасибо, что уделили нам время, проконсультировались или помогли.

...