1

私はこのような文字列を持っています

$str=44797675962044781781414912/04/2012
  • 最初の 12 桁: 447976759620 は電話番号です
  • 次の 12 桁: 447817814149 はサーバー コードです。

残りは日付です

私はこのように取得しようとしています:

echo substr($str,0,12).'<br/>';
echo substr($str,12,24).'<br/>';
$tempRest["receivedtime"]=substr($pieces[0],-10);

この奇妙な出力を取得する:

   44797675962
   12/04/2012
   44778691004444781781414912/04/2012

私に何ができる。何か助けはありますか?

編集済み:

元のコード:

  function GetSoapReturnArray() {
 $classmap = array('MyWSDLStructure' => 'MyComplexDataType');
 $m_wsdl = 'https://m2mconnect.orange.co.uk/orange-soap/services/MessageServiceByCountry?wsdl';
  $m_arr_soapclient = array('trace' => true, 'exceptions' => true);


  $soap_client_handle = new SoapClient($m_wsdl, $m_arr_soapclient);
  $soap_result = $soap_client_handle->peekMessages('telab048', 'Qwerty12', 40, '', 1);;

  $str=NULL;
  
  foreach ($soap_result as $soapArrayData)
  {
    $pieces = preg_split('/[ ]/', $soapArrayData);

  $str=$pieces[0];
    //echo $str.'<br/>';
    
    echo substr($str, 0, 12) . '<br />';
    echo substr($str, 12, 12) . '<br />';
  }
}


}
  GetSoapReturnArray();

  
4

3 に答える 3

4

の2番目のパラメーターsubstrは長さであり、終了インデックスではありません。12の代わりにパスし24ます。

echo substr($str, 0, 12) . '<br />';
echo substr($str, 12, 12) . '<br />';
$tempRest["receivedtime"] = substr($pieces[0], 24);
于 2012-04-20T18:54:30.207 に答える
0

そのためにあなたは持っていますsscanf

$r = sscanf($str, '%12s%12s%s', $phone, $server, $date);

出力(var_dump($phone, $server, $date);):

string(12) "447976759620"
string(12) "447817814149"
string(10) "12/04/2012"
于 2012-04-20T19:57:49.510 に答える
0

すべてのhtmlタグをフィルタリングするために使用するタグ$strが含まれているだけの文字列ではないため、問題が発生しています...HTMLstrip_tags

試す

    foreach ( $soap_result as $soapArrayData ) {
        $pieces = preg_split ( '/[ ]/', $soapArrayData );

        $str = $pieces [0];
        $str = trim ( $str );
        $str = strip_tags ( $str );
        echo substr ( $str, 0, 12 ) . '<br />'; //Phone Number
        echo substr ( $str, 12, 12 ) . '<br />'; // Server Code
        echo substr ( $str, 24, 10 ) . '<br />'; //Time
    }
于 2012-04-20T19:37:12.617 に答える