Я новичок в PHP. Я пытаюсь разработать простой глоссарий для студентов начальной школы.
Я хочу использовать .txt в качестве базы данных, взорванный «:». У меня есть текст, как это:
Hola:Hello
Good Bye: Adios
Car:Coche
Banana:Plátano
Plane:Avión
На данный момент я знаю, как напечатать весь текст или один столбец, но не могу напечатать одно слово:
<?php
$file = fopen("bank.txt", "r");
while(!feof($file)) {
echo fgets($file). "<br />";
}
fclose($file);
?>
Как я могу напечатать только ОДИН КОНКРЕТНЫЙ СЛОВО?
например Какой код требуется для печати только второго слова третьей строки?
Как упомянуто в комментариях … в будущем вы должны знать, как задавать вопросы по SO.
Что касается вашего вопроса, вы должны взглянуть на функции explode и foreach-loop в PHP.
Пример:
$data = 'Hola:Hello
Good Bye: Adios
Car:Coche
Banana:Plátano
Plane:Avión';
$arrData = array();
$lines = explode( "\n", $data );
foreach ($lines as $line) {
$words = explode( ":", $line );
$arrData[] = array( $words[0], $words[1] );
}
echo( $arrData[2][1] );
// Prints: "Coche"
Это должно работать для вас:
Просто поместите ваш файл в массив с file()
. Затем пройти через каждую строку с array_map()
а также explode()
линия по :
двоеточие.
<?php
$lines = file("test.txt", FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
$lines = array_map(function($v){
return explode(":", $v);
}, $lines);
print_r($lines); //echo $lines[0][1] <- Will print the first line, second word
?>
Или то, что вы также можете сделать, это изменить свой файл в .ini
формат файла, например
Hola="Hello"Good Bye="Adios"Car="Coche"Banana="Plátano"Plane="Avión"
И тогда вы можете просто использовать parse_ini_file()
, например
<?php
$file = parse_ini_file("test.ini");
//^^^^ See also here the extension
print_r($file);
?>