Четверг, 21 Ноября 2024, 19:41

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
[PHP]значение из удаленного ini файла
Zombie98Дата: Среда, 18 Мая 2011, 15:49 | Сообщение # 1
частый гость
Сейчас нет на сайте
Приветствую программистов, ситуация такова, на сервере лежит ini файл с таким содержанием:
[секция1]
ключ1=один
ключ2=два
ключ3=три
[секция2]
ключ1=одинадцать
ключ2=двенадцать
ключ3=тринадцать

Этот ини файл лежит на удаленном сервере, я его получаю с помощью CURL следующим кодом

Code
$url = "http://site.ru/file.ini";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
$result = curl_exec($ch);
curl_close($ch);
echo $result;

Таким образом весь текст ини файла оказывается в переменной $result
Все бы ничего но мне нужно каким то образом считать например значение ключа 2 из 2ой секции. Как это сделать?
Единственное что приходит в голову использовать регулярные выражения, например сначала идет округление до определенной секции, а их там очень много, например так
начиная от [секция2]тут все что войдет в переменную[
То есть искать от заголовка второй секции до квадратной скобки, что означает начало новой секции. Таким образом можно получить текст уже нужной секции, теперь нужно найти значение ключа в этой секции. Регулярное выражение должно быть типа:
ключ2= тут то что нужно а что тут будет я не знаю

Вообщем помогите решить проблему, подскожите может есть решение и без регулярных выражений, или же если с их использованием помогите их составить а то для меня они темный лес cry


Мой сайт - Фан сайт Minecraft
wernherДата: Среда, 18 Мая 2011, 16:08 | Сообщение # 2
Only God is Perfect
Сейчас нет на сайте
А чем тебе стандартные средства не подходят?
Вот парсинг строки




Сообщение отредактировал wernher - Среда, 18 Мая 2011, 16:10
AssasinДата: Среда, 18 Мая 2011, 16:17 | Сообщение # 3
web-coder
Сейчас нет на сайте
Code

<?php
# Задача: нужно найти в файле в [секция2] значение ключ2
$file = "http://localhost/shell/file.ini"; # Путь к файлу
$file_ = file($file); # Выбираем файл для чтения
$string = ""; # Переменная содержащая весь ini файл
$section_search = false; # Переменная для записи нужно нам секции
$section = ""; # Переменная в которой будет состоять нужная нам секция
$key = ""; # Переменная в которой будет состоять наш ключ
foreach ($file_ as $line) { # Начинаем читать файл
  $string .= $line;  
  if (preg_match("/(\[секция2\])/",$string)) { # Если нашли нужную нам секцию начинаем запись этой секции
   $section_search = true;
  }
  if (preg_match("/(\[секция3\])/",$string)) { # Если нашли секцию следующую после нужной нам секции, то прекращаем запись
   $section_search = false;
  }
  if ($section_search == true) { # Записываем секцию
   $section .= $line;
  }
}
$key = preg_match("/(ключ2=)([\S]+)(\n)/",$section,$match); # Ищем нужный ключ
if ($key) { # Если нашли, то выводим на экран
  echo $match[2];
}
?>
Zombie98Дата: Четверг, 19 Мая 2011, 11:18 | Сообщение # 4
частый гость
Сейчас нет на сайте
Assasin, спасибо большое, приведенные регулярные выражения работают!

Мой сайт - Фан сайт Minecraft
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг