PHP:提取字符串变量的某些部分

时间:2012-09-21 16:51:24

标签: php explode

我的变量看起来像这样:

$var1 = "33081PA-5112";

有一段时间它变成了:

$var1 = "33083";
$var1 = "33081PA-1132";
$var1 = "31183";
$var1 = "13081PA-2132";

我如何确定它何时具有PA-,所以当它确实时我想将PA-之后的数字值变为其他变量。

由于

6 个答案:

答案 0 :(得分:1)

使用strpos():

if(strpos($var,'PA-') !== false) // code to run if the string has a PA-

答案 1 :(得分:1)

你走了:

<?php
    $var1 = "13081PA-2132";
    $pos = strpos( $var1, 'PA-');
    echo $pos . "\n";

    if( $pos > -1 )
    {
        $newVal = substr($var1, $pos+3 );

        echo $newVal;
    }
?>

输出:

5
2132

答案 2 :(得分:1)

这会给你你想要的东西。

$var1 = "33081PA-1132";
preg_match('/^([0-9]*)PA-/',$var1,$match);
$var1_cut = $match[1];
preg_match('/PA-([0-9]*)/',$var1,$match);
$var2 = $match[1];

//Outputs
print_r($var1);     //33081PA-1132
print_r($var1_cut); //33081
print_r($var2);     //1132

答案 3 :(得分:0)

您可以进行regex匹配:

preg_match("{PA-(\d+)}",$var,$array);
echo $array[1][0];

答案 4 :(得分:0)

<?php

$var1 = "33083";
$var1 = "33081PA-1132";

if(strstr($var1, 'PA') !== false){ // If it has the PA
    $parts = explode('PA-', $var1); // Split by dash

    echo $parts[0]; // Left part
    echo '<br />';
    echo $parts[1]; // Right part
}else{
    echo $var1; // It has not PA
}

?>

答案 5 :(得分:0)

if(trim(str_replace(range(0,9),'', $var1)) == 'PA-') { 
  //do stuff
}