RRR_RRR, самый простой вариант - хранить данные в формате XML: ввести дополнительное свойство - id и, собственно, по нему уже производить удаление из файла(при выводе ссылок на 'удалить' передавать id из файла в параметр ?id=[id]). А обработчик по этому id будет удалять.
Почему БД не предлагать? посмотри Sqlite. Как вариант создавай файлы с именем email в отдельной папке. Так ты и сможешь проверить записан ли уже такой емаил либо его перезаписать... На будущее - делай проверки где это можно, иногда это лишнее, а иногда выручает. Code: if(fopen()) { fwrite(); fclose(); } Ну и золотое правило - нельзя верить переданным пользователем данным. В твоем случае нужно пропускать их через htmlspecialchars, во избежании XSS
PHP: <?php //загружаем базу $xml = simplexml_load_file('base.xml'); //получаем id последнего элемента $last_id = $xml->xpath('/entries/entry[last()]/@id'); //добавляем элемент записи $entry = $xml->addChild('entry'); //присваиваем в его атрибут его id(в зависимости от уже существующих) $entry->addAttribute('id', $last_id['0'] + 1); //добавляем имя и email $entry->addChild('name', 'имя3'); $entry->addChild('email', 'email@email3'); //вывод всех записей foreach($xml->entry as $entry) { echo "id: $entry[id]; Name: $entry->name; E-mail: $entry->email <br />"; } //удаляем запись по выбранному id = 2, сюда же можно id из $_GET вставить $id = 2; //если найдена - удаляем if($for_del = $xml->xpath("/entries/entry[@id=$id]")) { unset($for_del[0]->{0}); echo 'Запись удалена'; } else echo 'Не существует'; //сохраняем обратно $xml->asXML('base.xml'); XML-файл base.xml только в кодировке UTF-8: Code: <?xml version="1.0" standalone="yes"?> <entries> <entry id="1"> <name>Имя</name> <email>email@email</email> </entry> <entry id="3"> <name>имя3</name> <email>email@email3</email> </entry> </entries> Ну еще про htmlspecialchars не стоит забывать
Пример работы с XML познавательный, но если задуматься о производительности, например если у тебя > 10 000 записей, чтобы переварить такой XML файл потребуется много ресурсов. ИМХО для данной задачи оптимальнее каждый email записывать в свой файл ./base/[email protected], а в него данные в формате csv - name;fio;pass; (что угодно)
Именно, XML больше создан для быстрого презентативного доступа к информцации, но для небольших проектов, да и в качестве обучалки - вполне подойдет. В идеале конечно же лучше использовать базы данных или что-нибудь полегче: csv, json, serialize. Кстати, по поводу последнего - это возможно самый удобный вариант в плане скорости работы и на практике - кратчайшая реализация. PHP: <?php $users = array(array('name' => 'имя1', 'e-mail' => 'mail@mail'), array('name' => 'имя2', 'e-mail' => 'mail@mail2') ); //сохранили в файл file_put_contents('base.dat', serialize($users)); //прочли из файла $users_new = unserialize(file_get_contents('base.dat')); var_dump($users_new); P.S ну или вообще хранить все в собственном формате с таблицей импорта для быстрого доступа к определенным блокам данных.