найти те же входные данные и заменить их на новые, прежде чем записать их в текстовый вывод - PullRequest
2 голосов
/ 19 июня 2019

У меня были некоторые проблемы с моим php-кодом, он выглядит следующим образом

<form method="post">
        jumlah cetak?
        <input type="hidden" name="field1" value="'.$file.'">
        <input type="text" name="field2" maxlength="4" size="4">
        <input type="submit" value="SIMPAN">
        </form>

<?php
 $path = '../data.txt';
 if (isset($_POST['field1']) && isset($_POST['field2'])) {
 $fh = fopen($path,"a+");
 $string = $_POST['field1'].' | '.$_POST['field2'].''  ;
 $string = $string.PHP_EOL;
 fwrite($fh,$string); // Write information to the file
 fclose($fh); // Close the file
 }
 ?>

и приводит к моему «data.txt» при вводе некоторых данных

IMG_7892.jpg | 3
Bilqis.JPG | 7
IMG_7892.jpg | 1
Bilqis.JPG | 8

это показывает, что я взял 2 имени файла, которые будут обработаны дважды.который:
(1) IMG_7892.jpg из 3 файлов и изменение его на 1 файл
(2) Bilqis.JPG из 7 файлов, изменение его на 8 файлов


что я хочу, это когда я ввожу одно и то же имя файла и меняю его значение как этот "data.txt", (просто напишите последний ввод в txt)

   IMG_7892.jpg | 1
   Bilqis.JPG | 8
   ...etc to other filename

как сделать так?пожалуйста, помогите мне?

1 Ответ

0 голосов
/ 19 июня 2019

Немного трудно догадаться, как генерируется вывод, который должен быть довольно простым, чтобы добавить туда *from* и *to*, еще один вариант - просто preg_replace впоследствии, даже если это не так. правильный путь, с выражением, похожим на:

(IMG_.+\s*.*\..+.*\s*)(IMG_.+\s*.*\..+.*)

и замените его на:

*from*\n$1$2\n\n*to*\n$2

и это может сработать.

Тест

$re = '/(IMG_.+\s*.*\..+.*\s*)(IMG_.+\s*.*\..+.*)/mi';
$str = 'IMG_7892.jpg | 3
Bilqis.JPG | 7
IMG_7892.jpg | 1
Bilqis.JPG | 8';
$subst = '*from*\\n$1$2\\n\\n*to*\\n$2';

$result = preg_replace($re, $subst, $str);

echo $result;

выход

Демо

*from*
IMG_7892.jpg | 3
Bilqis.JPG | 7
IMG_7892.jpg | 1
Bilqis.JPG | 8

*to*
IMG_7892.jpg | 1
Bilqis.JPG | 8
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...