求救!我是新手,请问怎样用php截取字符串?
我数据库里有个字段是对产品的信息进行描述的,那里面包含了很多产品属性,我现在要把这些属性抽出来放进另外一张新表中,不同的产品又有不同的属性。请各位帮忙提点意见,小女子感激不尽啊!
下面列出几条属性,做代表
1.Codonics ChromaVista Media Paper/Color Ribbon, 8.5 x 12, 100 Printer Paper and Color Ribbon (100 sheets per package) Compatible with 1600/1660 Series. 怎样读取出‘X’左右的那两个数字
2.Epson Stylus Color 3000/Pro 5000 Yellow Ink Cartridge。 怎样读取出字符’Epson‘ 'yellow' ,即牌子和颜色。

解决方案 »

  1.   

    没有规律.很难解决.
    $ar = explode(" ","Epson Stylus Color 3000/Pro 5000 Yellow Ink Cartridge");echo "牌子:".$ar[0]."颜色:".$ar[5];
      

  2.   


    $str='Codonics ChromaVista Media Paper/Color Ribbon, 8.5 x 12, 100 Printer Paper and Color Ribbon (100 sheets per package) Compatible with 1600/1660 Series. ';
    preg_match_all('/([\d\.])+ x ([\d\.])+/',$str,$arr); 
    print_r($arr);
    第2个呢建议建立一个数组,用拆分的方法去查询,然后取出来,那么就可以动态的了..如果单单按照空格来拆分,出来的数据有可能是不同的.
      

  3.   

    同上,楼主最好多给几条, 看下规律
    按顶楼两条数据这样可以
    <?
    $str = 'Codonics ChromaVista Media Paper/Color Ribbon, 8.5 x 12, 100 Printer Paper and Color Ribbon (100 sheets per package) Compatible with 1600/1660 Series.';
    $str2='Epson Stylus Color 3000/Pro 5000 Yellow Ink Cartridge';//得到$str两个数字
    $nums = preg_split('/\s*x\s*/',preg_replace('/^.+?(\d+.+?x.+?\d+).+$/','$1',$str));
    print_r($nums);//得到名字颜色
    $name = preg_replace('/^(\S+).+$/','$1',$str2);
    $color = preg_replace('/^.+?\s+?(\S+?)\s+Ink.+$/','$1',$str2);
    echo '$name='.$name.' ';
    echo '$color='.$color;
    ?>
      

  4.   


    <body>
    <script   >
    function   regex()
    {var   str=document.form1.name1.value;
     var str2=str.split(",");
     var x=str2[1].split("x")[0];
     var y=str2[1].split("x")[1];
    //var   result   =   regex.test(str);
    alert(x);
    alert(y);
    }
    </script>
    <form   name=form1>
    <input   type=text   name=name1   >
    <input   type=button   onClick= "regex() "   value= "test "   >
    </form>
    </body>