Сохранение результата в текстовый файл

Я поискал по этому сайту ответ, но не нашел помощи в решении своей проблемы. У меня есть сценарий с формой, и я хотел бы получить содержимое ввода, записанное в текстовый файл (например, построчно в файле mytext.txt) при нажатии кнопки отправки - или, может быть, проще только результат.

Результат / содержание "echo $ result ['text'];" следует сохранить в текстовый файл (mytext.txt)

Я пытался добавить что-то подобное после каждого "эха", но это не сработало. вот пример кода.

$f = fopen("mytext.txt", "w");
fwrite($f,  $result);
fclose($f);

или же

$f = fopen("mytext.txt", "w");
fwrite($f,  $username);
fclose($f);

или же

$txt = "$result";
$myfile = file_put_contents('mytext.txt', $txt.PHP_EOL , FILE_APPEND | LOCK_EX);

но все равно не повезло. Как это сделать и куда добавить? С PHP или, может быть, с JavaScript? Помоги пожалуйста.

редактировать: ЧАСТЬ сценария (извини, что забыла об этом)

<?php

if (count($check_ex) == 2){
    $ex_name = $check_ex[0]."_".$check_ex[1];
}else{
    $ex_name = $check_ex[0];
}
            $additional_button = "<a href='javascript:void(0)' onclick='submitform_$dom_$ex_name()' ><button id='buy' class='btn btn-success btn-xs pull-right order-btn'>".__($additional_button_name, 'kate')."</button></a>";
        }elseif ($integration == 'woocommerce'){
            if ($show_price){
                $show_price = '- '.kate_display_price($username).__('/year','kate');
            }
            $additional_button = "<a href='?&add-to-cart=$additional_button_link&username=$username' id='buy' class='btn btn-success btn-xs pull-right order-btn' $buy_new_tab >".__($additional_button_name,'kate')." $show_price</a>";
            }elseif ($integration == 'custom'){
            if (!$additional_button_name == '' AND !$additional_button_link == ''){
                $additional_button_links = str_replace( '{username}', $username, $additional_button_link );
                $additional_button = "<a id='buy' class='btn btn-success btn-xs pull-right order-btn' href='$additional_button_links' $buy_new_tab >".__($additional_button_name,'kate')."</a>";
            }else{
                $additional_button = '';
            }
        }else{
            $additional_button = '';
        }

        $custom_not_found_result_text = str_replace( '{username}', $username, $custom_not_found_result_texts );
        $whmcs = "<script type='text/javascript'>
                function submitform_$dom_$ex_name()
                {
                  document.whmcs_$dom_$ex_name.submit();
                }
                </script>
                <form method='post' name='whmcs_$dom_$ex_name' id='whmcs' action='$additional_button_link/cart.php?a=add&username=register' $buy_new_tab>
                <input type='hidden' name='usernames[]' value='$username' >
                <input type='hidden' name='usernamesregperiod[$username]' value='1'>
                </form>";
        if ($available->status == 1) {
                $result = array('status'=>1,
                                'username'=>$username, 
                                'text'=>    '<div class = "callout callout-success alert-success clearfix available">
                                            <div class = "col-xs-10" style = "padding-left:1px;text-align:left;">
                                            <i class = "glyphicon glyphicon-ok" style = "margin-right:1px;"></i> '.__($custom_found_result_text,'kate').' </div>
                                            <div class = "col-xs-2" style = "padding-right:1px">'.__($additional_button,'kate').' '.$whmcs.'</div>
                                            </div>
                                            '); 
                echo $result['text'];



        } elseif ($available->status == 0) {
                $result = array('status'=>0,
                                'username'=>$username, 
                                'text'=>    '<div class = "callout callout-danger alert-danger clearfix not-available">
                                            <div class = "col-xs-10" style = "padding-left:1px;text-align:left;">
                                            <i class = "glyphicon glyphicon-remove" style = "margin-right:1px;"></i> '.__($custom_not_found_result_text, 'kate').' 
                                            </div>
                                            <div class = "col-xs-2" style = "padding-right:1px">'.$www_link.'</div>
                                            </div>
                                            ');
                echo $result['text'];


        }elseif ($available->status == 2) {
                $result = array('status'=>2,
                                'username'=> $username, 
                                'text'=>    '<div class = "callout callout-warning alert-warning clearfix notfound">
                                            <div class = "col-xs-10" style = "padding-left:1px;text-align:left;">
                                            <i class = "glyphicon glyphicon-exclamation-sign" style = "margin-right:1px;"></i> '.__('not found','kate').' 
                                            </div>
                                            </div>
                                            ');
                echo $result['text'];


        }
    }
    }
    else
    {
        echo 'Please enter the username';
    }
} 

ты уверен, что это не работает? я думаю, что ваши первые два кода работают

david 19.07.2018 03:20

Находится ли путь к текстовому файлу в том же каталоге, что и файл php?

charlietfl 19.07.2018 03:21

Вы уверены, что ищете файл в правильном каталоге? Попробуйте использовать абсолютный путь, чтобы быть уверенным, что он пишет в нужный каталог. И убедитесь, что у пользователя, запускающего сценарий, есть разрешение на создание файлов в этом каталоге.

Barmar 19.07.2018 03:25

При чем здесь Javascript?

Barmar 19.07.2018 03:25

Кстати, file_put_contents вернет количество записанных байтов, а не указатель на этот файл. Вот документ: php.net/manual/en/function.file-put-contents.php

CarlosCarucce 19.07.2018 03:43

Отредактировал свой пост, извините, что забыл добавить. У скрипта есть разрешение на создание файлов в этом каталоге, я тестирую его на localhost (xampp с apache2 и php7). Куда я могу это добавить?

Julia Smith 19.07.2018 15:43
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
6
43
3

Ответы 3

Если у вас возникают ошибки при попытке запустить этот код, убедитесь, что вы предоставили доступ к файлу PHP для записи информации на жесткий диск.

В Unix и Windows разрешения предоставляются пользователям, а не отдельным файлам.

Barmar 19.07.2018 03:23

Вы должны проверить, доступен ли для записи каталог, в котором вы пытаетесь сохранить текстовый файл. Пример:

$contents = 'Here goes your content';
$dirName = __DIR__; //in case you're saving in another directory, you may use 'files/directory/' instead of __DIR__
$fileName = $dirName.'/mytext.txt';

if (!is_writable($dirName)) {
    throw new \Exception("This folder is not writable: '$dirName'");
}

//Checks if the content was added
if (!file_put_contents($fileName, $contents)) {
    throw new \Exception("Could not write to file: $fileName");
}

Код правильный, возможно, у каталога нет разрешения на создание файлов.

Другие вопросы по теме