Выборки из строки в php
Помогите пожалуйста, я даже не знаю с чего начать.
Задача такая:есть строка
200...текст...#A...текст...#B...текст...@300...текст...#A...текст...#B...текст.
где 200,300 - коды строки
@ - разделитель между строками
A,B - коды подстроки
# - разделитель между подстроками
Как написать так, чтоб, например, получить значение подстроки 'B' в строке '300' ?
Помогите, пожалуйста, не дйте помереть...
Цитата:
Originally posted by Riccon
Я тольк начинаю изучать php, и ничего не знаю. Полный ноль.
Помогите пожалуйста, я даже не знаю с чего начать.
.....
Я тольк начинаю изучать php, и ничего не знаю. Полный ноль.
Помогите пожалуйста, я даже не знаю с чего начать.
.....
Может начать с чего-нибудь чуток по проще? :)
Цитата:
Задача такая:есть строка
200...текст...#A...текст...#B...текст...@300...текст...#A...текст...#B...текст.
где 200,300 - коды строки
@ - разделитель между строками
A,B - коды подстроки
# - разделитель между подстроками
Как написать так, чтоб, например, получить значение подстроки 'B' в строке '300' ?
Помогите, пожалуйста, не дйте помереть...
В принципе, если файл не очень большой... В смысле строк не очень много, то тогда, для начала, можно положить в массив и дальше уже работать со строками. Например так:
Код:
$str= "200...текст...#A...текст...#B...текст...@300...текст...#A...текст...#B...текст...@400...текст...#A...текст...#B...текст";
$myarray = explode("@",$str);
for ($i=0;$i<count($myarray);$i++) {
$substr = explode("#",$myarray[$i]);
$index = preg_match("/[0-9]{1,5}/",$substr[0],$regs);
$substr[0] = preg_replace("/[0-9]{1,5}/","",$substr[0]);
$all[$regs[0]]["text"] = $substr[0];
for ($j=1;$j<count($substr);$j++) {
$all[$regs[0]]["sub"][substr($substr[$j],0,1)]=substr($substr[$j],1,strlen($substr[$j]));
}
}
print $all[300]["sub"]["B"];
//Красиво распечатаный массив:
print "<pre>";
print_r($all);
print "</pre>";
$myarray = explode("@",$str);
for ($i=0;$i<count($myarray);$i++) {
$substr = explode("#",$myarray[$i]);
$index = preg_match("/[0-9]{1,5}/",$substr[0],$regs);
$substr[0] = preg_replace("/[0-9]{1,5}/","",$substr[0]);
$all[$regs[0]]["text"] = $substr[0];
for ($j=1;$j<count($substr);$j++) {
$all[$regs[0]]["sub"][substr($substr[$j],0,1)]=substr($substr[$j],1,strlen($substr[$j]));
}
}
print $all[300]["sub"]["B"];
//Красиво распечатаный массив:
print "<pre>";
print_r($all);
print "</pre>";
Ну а там уже возникает куча "но". Всегда ли есть строка? Всегда ли код подстроки состоит из одной буквы и т.д.
Также, наверное можно попробовать сделать регуляркой.
А откуда такая задача взялась, если не секрет?
А задача такая взялясь вот откуда: новому начальнику понадобилось всё сделать поновому и ново. В общем есть некоторая софтина, которая хранит записи в MSSQL DB, где формат одной записи и имеет вот такую структуру. Вот и сказали мне, иди учи php и напиши нам поиск по базе через web интерфейс. Так-то искать собираюсь по индексным словарям, ну а они то и ссылаются на гадскую строчку.
Со всем остальным, думаю, справлюсь. Еще раз огромнейшее спасибо!:P
Цитата:
Originally posted by Riccon
Ахххххренеть!!! Супер! Вот спасибо, так спасибо. Самый полезный ответ, который когда либо мне давали в форумах. УРАААА.
А задача такая взялясь вот откуда: новому начальнику понадобилось всё сделать поновому и ново. В общем есть некоторая софтина, которая хранит записи в MSSQL DB, где формат одной записи и имеет вот такую структуру. Вот и сказали мне, иди учи php и напиши нам поиск по базе через web интерфейс. Так-то искать собираюсь по индексным словарям, ну а они то и ссылаются на гадскую строчку.
Со всем остальным, думаю, справлюсь. Еще раз огромнейшее спасибо!:P
Ахххххренеть!!! Супер! Вот спасибо, так спасибо. Самый полезный ответ, который когда либо мне давали в форумах. УРАААА.
А задача такая взялясь вот откуда: новому начальнику понадобилось всё сделать поновому и ново. В общем есть некоторая софтина, которая хранит записи в MSSQL DB, где формат одной записи и имеет вот такую структуру. Вот и сказали мне, иди учи php и напиши нам поиск по базе через web интерфейс. Так-то искать собираюсь по индексным словарям, ну а они то и ссылаются на гадскую строчку.
Со всем остальным, думаю, справлюсь. Еще раз огромнейшее спасибо!:P
Привет, рад, что помог!
Вообще это не решение, это так, баловство и наверное можно и поизящней сделать. Поиск по базе всётаки лучше делать средствами самой базы. То есть, я бы, лично, написал бы хранимую процедурку на TSQL а из php просто бы обрабатывал результаты.
Хотя, если честно, так и не понял, как оно там у тебя всё храниться :)