PHP: Как найти начало и конец подстроки в строке? - PullRequest
0 голосов
/ 14 сентября 2010

Это содержимое одного поля таблицы mysql:

Flash LEDs: 0.5W
LED lamps: 5mm
Low Powers: 0.06W, 0.2W
Remarks(1): this is remark1
----------
Accessories: Light Engine
Lifestyle Lights: Ambion, Crane Fun
Office Lights: OL-Deluxe Series
Street Lights: Dolphin
Retrofits: SL-10A, SL-60A
Remarks(2): this is remark2
----------
Infrared Receiver Module: High Data Rate Short Burst
Optical Sensors: Ambient Light Sensor, Proximity Sensor, RGB Color Sensor
Photo Coupler: Transistor
Remarks(3): this is remark3
----------
Display: Dot Matrix
Remarks(4): this is remark4

Теперь я хочу прочитать замечания и сохранить их в переменной. Замечания (1), Замечания (2) и т. Д. Исправлены. «это замечание1» и т. д. происходят из полей ввода формы, поэтому они гибкие.

В основном мне нужно: прочитать все между «Замечаниями (1):» и «--------» и сохранить его в переменной.

Спасибо за вашу помощь.

Ответы [ 3 ]

1 голос
/ 14 сентября 2010

Вы можете использовать регулярное выражение:

preg_match_all("~Remarks\(([^)]+)\):([^\n]+)~", $str, $m);

Как видно на ideone .

Регулярное выражение поместит X в группу совпадений 1, Y в группу совпадений 2 (Примечания (X): Y)

0 голосов
/ 14 сентября 2010

Используйте функцию preg для этого или иначе вы можете взорвать и взорвать функцию, чтобы получить правильный результат.Не используйте подстроку, она может не обеспечить исправление.

Пример функции взрыва и разнесения для строки запроса:

    $sdr = "Remarks(4): this is remark4";

    $sdr1 = explode(":",$sdr);
    $frst = $sdr1[0];

    $sdr2 = array_shift($sdr1);

    $secnd = implode(" ", $sdr1);

    echo "First String - ".$frst;
    echo "<br>";
    echo "Second String - ".$secnd;
    echo "<br>";

Ваш ответ:

First String - Remarks(4)

Second String - this is remark4
0 голосов
/ 14 сентября 2010

Это будет работа для регулярных выражений, которые позволяют вам точно соответствовать правилам, которые выражают ваши требования. Здесь учебник для вас.

...