Этот код просто выводит указанную строку из файла file.txt Код (Text): $file = file('file.txt'); $id = 1; echo "$file[$id]"; А нужно чтобы он выводил не строку, а все что после | 1|текст 2|текст Знаю, что нужно использовать функцию explode, но как это сделать?
Код (PHP): $file = file('file.txt'); $id = 1; list($n,$text) = explode('|',$file[$id],2); echo $text;
Большое спасибо, работает. Но мне еще нужно, чтобы выводилась не просто строка отсчитанная от начала файла, а именно указанная строка, независимо от ее места нахождения в файле. $id = 4; 1|текст 3|текст 2|текст 5|текст 4|текст
Правда несовсем по теме.На своем небольшом опыте по изучению php подскажу,что работать с бд проще ,чем с файлами.Я честно говоря даже проскочил тему с файлами и сразу начал изучать бд.Поверьте с бд лучше и проще
Код (PHP): if (file_exists ("SQL.db") == FALSE) { $db = new SQLiteDatabase("SQL.db"); $db->query("BEGIN; CREATE TABLE table(id INTEGER PRIMARY KEY, text); INSERT INTO table VALUES('1', 'текст1'); INSERT INTO table VALUES('2', 'текст2'); INSERT INTO table VALUES('3', 'текст3'); INSERT INTO table VALUES('4', 'текст4'); COMMIT; "); } else { $db = new SQLiteDatabase("SQL.db"); } echo $db->singleQuery("SELECT text FROM table WHERE id = '".sqlite_ecsape_string($_GET[id])."'"); site.ru/?id=1
Код (PHP): $lines = file('./file.txt'); $id = 2; $text = null; array_walk($lines, function($item, $key) use($id, &$text) { $a = explode('|', $item); if ($a[0] == $id) $text = $a[1]; }); echo $text; полюбому выведет "текст" ))) P.S. база лучше
При помощи БД mysql оказалось все действительно гораздо проще. Даже не ожидал что получится. Код (Text): $db = mysql_connect("localhost","логин","пароль"); //Подключаемся к базе данных mysql_select_db("имя базы данных",$db); // Выбираем базу данных @mysql_query('set character_set_results="utf8"'); // Устанавливаем кодировку ответа $id=7; // Указываем из строки с каким Id брать данные, 7 можно заменить на переменную. $resultat = mysql_query("SELECT * FROM `название таблицы бд` WHERE ID='$id'"); //Указываем из какой таблицы брать данные $array = mysql_fetch_array($resultat); echo "ID: ".$array['ID']."<br>Почта: ".$array['user_email']."<br>Имя: ".$array['display_name']."<br><br>"; Добавлено спустя 6 минут 7 секунд: Не работает: syntax error, unexpected T_FUNCTION
http://php.ru/manual/functions.anonymous.html http://php.ru/manual/function.array-walk.html У тебя какая версия php?
дык! конечно, анонимные функции с 5.3 начались. до этой версии не так красиво колбэками получается. обновляйся уже )))
Лучше сразу изучать более свежее расширение PDO $result = $db->query("SELECT * FROM table WHERE id='$id' "); while($myrow = $result->fetch()) {echo $myrow['id'];}