Нужна помощь с формой

Статус
В этой теме нельзя размещать новые ответы.
для простоты сделайте тестовую форму
Код:
<form action="index.php">
<input name="name[0]" type="text" value="Name0">
<input name="name[1]" type="text" value="Name1">
<input name="name[2]" type="text" value="Name2">
<input name="other_name[0]" type="text" value="OtherName0">
<input name="other_name[1]" type="text" value="OtherName1">
<input name="other_name[2]" type="text" value="OtherName2">
<input type="submit">
</form>
 
на сервере у вас должно быть
_POST['name'] массив значений
_POST['other_name'] массив значений
 
для простоты сделайте тестовую форму
Код:
<form action="index.php">
<input name="name[0]" type="text" value="Name0">
<input name="name[1]" type="text" value="Name1">
<input name="name[2]" type="text" value="Name2">
<input name="other_name[0]" type="text" value="OtherName0">
<input name="other_name[1]" type="text" value="OtherName1">
<input name="other_name[2]" type="text" value="OtherName2">
<input type="submit">
</form>
 
на сервере у вас должно быть
_POST['name'] массив значений
_POST['other_name'] массив значений

Да, Я просто забыл добавить [] к $i

Вот мой полный код
Код:
    $rd = $_POST['faile'];
    $fno = 'test/' . $rd . '';
$eng_xml_txt = file_get_contents($fno);
$file="text.php";
$mytext = '';
for($i = 0; $i < count($_POST['name']); ++$i)
{
$a = $_POST['name'][$i];
$aa = $_POST['namess'][$i];
$mytext .= str_replace($aa, $a, $eng_xml_txt);
}
file_put_contents($file, $mytext);
Вроде работает, но записывает в файл одно и тоже несколько раз(((

Записывает, каждый раз новый текст с новым значениям, то есть как я и говорил такой вот трабл
 
file_put_contents($file, $mytext,FILE_APPEND);
Ничего не изменилось
 
должно работать!
Для просмотра ссылки Войди или Зарегистрируйся

если не работает, то либо код неверный, либо голактеко опасносте :crazy:

ММмм
то ли я дурак то ли лыжи не едут, не работает хоть убейте
Код проверил 100550 раз

Сделал дамп $mytext
Уже идут повторы в самой переменной уже забиты повторы
проблема в цикле

Помогите люди добрые...
привожу еще раз полный код
Код:
$rd = $_POST['faile'];
    $fno = 'test/' . $rd . '';
$eng_xml_txt = file_get_contents($fno);
$file="text.php";
$mytext = '';
for($i = 0; $i < count($_POST['name']); ++$i)
{
$a = $_POST['name'][$i];
$aa = $_POST['namess'][$i];
$mytext .= str_replace($aa, $a, $eng_xml_txt);
}
file_put_contents($file, $mytext);
Как я понял нужно $eng_xml_txt как то вынести из цикла?!
 
1. откуда берётся $eng_xml_txt? тоесть, иничиализируется ли переменная $rd вообще и вычитывается ли контент файла в переменную эту?
2. почему в file_put_comments отсутствует константа (в виде третьего параметра)?
 
1. откуда берётся $eng_xml_txt? тоесть, иничиализируется ли переменная $rd вообще и вычитывается ли контент файла в переменную эту?
2. почему в file_put_comments отсутствует константа (в виде третьего параметра)?

Вычитывается же, если контент повторяется значит он есть)
Повторяется именно контент с другого файла, в каждом повторении заменяется значения, то есть 1 раз заменилось 1 значения с 1 поля
второй раз второе значения с второго поля
Насчет
почему в file_put_comments отсутствует константа (в виде третьего параметра)?
если вы о флагах, то что с ними что без толку нет

За решения скину на пиво)

По моему цикл тут лишний
Вот если сделать так
$mytext = str_replace($_POST['namess'], $_POST['name'], $eng_xml_txt);

file_put_contents($file, $mytext);
Работает!)
Только вот если в массиве пустое значения то оно заменяется((
Передаю 5 слов на замену, а в форме 10 строк, ну и передается 10 строк
На что заменять массив я очистил с помощью array_filter
Но не помогло, в массиве что заменять, есть 10 элементов, ну и str_replace заменяет на пустые строки если не передано значения на что заменить

Хмм...Если в массиве replace меньше элементов, чем в search, в качестве строки замены для оставшихся значений будет использована пустая строка.
А можно не заменять на пустую строку, а просто удалить лишнее значения?
 
По моему цикл тут лишний
Вот если сделать так
$mytext = str_replace($_POST['namess'], $_POST['name'], $eng_xml_txt);

file_put_contents($file, $mytext);
Работает!)
Только вот если в массиве пустое значения то оно заменяется((
Подскажите как удалить пустые ключи из массива?


PHP:
<?php
function clearArray($massiv){
    for($i = 0; $i <= count($massiv); $i++){
        $massiv[$i] = str_replace(" ","",$massiv[$i]);
        if(!$massiv[$i]){
            unset($massiv[$i]);
        }
    }
}
?>
 
PHP:
<?php
function clearArray($massiv){
    for($i = 0; $i <= count($massiv); $i++){
        $massiv[$i] = str_replace(" ","",$massiv[$i]);
        if(!$massiv[$i]){
            unset($massiv[$i]);
        }
    }
}
?>

Я обновил пост, вот проблема
Если в массиве replace меньше элементов, чем в search, в качестве строки замены для оставшихся значений будет использована пустая строка.
А можно не заменять на пустую строку, а просто удалить лишнее значения?
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху