function st_select($st)
{
$Lg=qtrans_getLanguage();
//$Lg = 'en';
switch ($Lg) {
    case 'zh' :
        $Pat = '/<!--:zh-->(.*)<!--:-->/U';
        break;
    case 'ja' :
        $Pat = '/<!--:ja-->(.*)<!--:-->/U';
        break;
    case 'en' :
        $Pat = '/<!--:en-->(.*)<!--:-->/U';
        break;
}
preg_match( $Pat, $st, $Marray );
echo $Lg;
echo $st;
echo $Marray[1];//More Info}
<?php echo st_select(wpsc_cart_item_name()); ?>输出结果:
en
<!--:en-->iPad 2 <!--:--><!--:zh-->中文<!--:--><!--:ja-->日文<!--:-->
echo $Marray[1]
请问这个没有输出是哪里有问题啊?

解决方案 »

  1.   

    <?PHP
    $Str ='<!--:en-->iPad 2 <!--:--><!--:zh-->中文<!--:--><!--:ja-->日文<!--:-->';
    $Lg = 'en';
    switch ($Lg) {
        case 'zh' :
            $Pat = '/<!--:zh-->(.*)<!--:-->/U';
            break;
        case 'ja' :
            $Pat = '/<!--:ja-->(.*)<!--:-->/U';
            break;
        case 'en' :
            $Pat = '/<!--:en-->(.*)<!--:-->/U';
            break;
    }
    preg_match ( $Pat, $Str, $Marray );
    echo $Marray [1];//More Info
    ?>
    echo $Marray [1];这样可以输出字符串输出结果:More Info
      

  2.   

    不清楚你的电脑啥回事 我就这么测试也是正常的function st_select($st)
    {
    //$Lg=qtrans_getLanguage();
    $Lg = 'en';
    switch ($Lg) {
      case 'zh' :
      $Pat = '/<!--:zh-->(.*)<!--:-->/U';
      break;
      case 'ja' :
      $Pat = '/<!--:ja-->(.*)<!--:-->/U';
      break;
      case 'en' :
      $Pat = '/<!--:en-->(.*)<!--:-->/U';
      break;
    }
    preg_match( $Pat,$st,$Marray);
    echo $Marray[1];
    }
    echo st_select('<!--:en-->iPad 2 <!--:--><!--:zh-->中文<!--:--><!--:ja-->日文<!--:-->');
    //===============
    修改最后一个break 看看是否是语言没有匹配  $Pat = '/<!--:en-->(.*)<!--:-->/U';
      break;
      default:
       echo '错误:未选择语言';
       exit();
      

  3.   

    function st_select($st)
    {
    //$Lg=qtrans_getLanguage();
      $Lg = 'en';
      $Pat = "/<!--:$Lg-->(.*)<!--:-->/U";
      preg_match( $Pat, $st, $Marray );
      return $Marray[1];
    }$s = "<!--:en-->iPad 2 <!--:--><!--:zh-->中文<!--:--><!--:ja-->日文<!--:-->";
    echo st_select($s);
    iPad 2 
      

  4.   

    直接$Str ='<!--:en-->iPad 2 <!--:--><!--:zh-->中文<!--:--><!--:ja-->日文<!--:-->';
    可以输出,不过是乱码
    $Str =wpsc_cart_item_name();
    echo $Str;
    可以输出为<!--:en-->iPad 2 <!--:--><!--:zh-->中文<!--:--><!--:ja-->日文<!--:-->
    switch ($Lg) {
      case 'zh' :
      $Pat = '/<!--:zh-->(.*)<!--:-->/U';
      break;
      case 'ja' :
      $Pat = '/<!--:ja-->(.*)<!--:-->/U';
      break;
      case 'en' :
      $Pat = '/<!--:en-->(.*)<!--:-->/U';
      break;
    default:
      echo '错误:未选择语言';
      exit();
    }
    preg_match( $Pat,$st,$Marray);
    echo $Marray[1];
    }以上代码是没有输出的,连“错误:未选择语言”这个都没有。
    我觉好像上面那些代码没有执行一样。我是在改一个叫wordpress的博客系统,会不会被hook了??
      

  5.   

    <td class="wpsc_product_name wpsc_product_name_<?php echo wpsc_the_cart_item_key(); ?>">
               <a href="<?php echo wpsc_cart_item_url();?>"><?php
       
       $Lg=qtrans_getLanguage();
      $st = wpsc_cart_item_name();
    //$st ='<!--:en-->iPad 2 <!--:--><!--:zh-->中文<!--:--><!--:ja-->日文<!--:-->';
      
    //$Lg = 'en';
    switch ($Lg) {
        case 'zh':
            $Pat = '/<!--:zh-->(.*)<!--:-->/U';
            break;
        case 'ja':
            $Pat = '/<!--:ja-->(.*)<!--:-->/U';
            break;
        case 'en':
            $Pat = '/<!--:en-->(.*)<!--:-->/U';
            break;
    default:
            echo '123456';
            exit();
    }
    preg_match( $Pat, $st, $Marray );echo $Lg;
    //echo $st;
    echo $Marray[1];
    echo 'lllllll';
       
       
       
      ?></a>

             </td>