0

This is the content of one mysql table field:

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

Now, I want to read the remarks and store them in a variable. Remarks(1), Remarks(2), etc. are fixed. 'this is remark1', etc. come from form input fields, so they are flexible.

Basically what I need is: Read everything between 'Remarks(1):' and '--------' and save it in a variable.

Thanks for your help.

4

3 回答 3

1

You can use regex:

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

As seen on ideone.

The regex will put X in match group 1, Y in match group 2 (Remarks(X): Y)

于 2010-09-14T04:45:17.733 回答
0

为此使用preg函数,否则您可以分解和内爆函数以获得正确的结果。不要使用子字符串它可能无法提供更正。

查询字符串的 Implode 和 Explode 函数示例:

    $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
于 2010-09-14T05:02:37.943 回答
0

This would be a job for regular expressions, which allow you to match on exactly the kinds of rules your requirements express. Here is a tutorial for you.

于 2010-09-14T04:42:37.223 回答