$tem = $arr['invoice_type'];
echo "
"; <br /> 出力<br /> a:2:{s:4:"type";a:3:{i :0;s:8:"個人請求書";i:1;s:8:"企業請求書";i:2;s:0:"";}s:4:"レート";a:3:{ i:0;d:6;i:1;d:6;i:2;d:0;}} <br /> <br /> $teem []= preg_replace('!s:(d+):"(.*?)" ;!se', "'s:'.strlen('$2').':"$2";'", $arr['invoice_type'] ); <br /> echo "<pre class="brush:php;toolbar:false">" <br> print_r($teem) ); <br> 出力 <br> 配列 <br> ( <br> [0] => a:2:{'s:'.strlen('type').':"type";'a:3:{i:0;'s :'.strlen('個人請求書').':"個人請求書";'i:1;'s:'.strlen('ビジネス請求書').':"ビジネス請求書";'i:2;'s :'.strlen('').':"";'}'s:'.strlen('rate').':"rate";'a:3:{i:0;d:6;i: 1;d:6;i:2;d:0;}} <br> ) <br> <br> $teemm []= preg_replace_callback('!s:(d+):"(.*?)";!s', function ($一致) {return strlen('$2').':"$2";';}, $arr['invoice_type'] ); <br> print_r($teemm); <br> ( <br> [0] => a:2:{2:"$2";a:3:{i:0;2:"$2";i:1;2:"$2";i:2;2 :"$2";}2:"$2";a:3:{i:0;d:6;i:1;d:6;i:2;d:0;}} <br> ) <br> <br> 作り方preg_replace_callback 出力情報はpreg_replaceで出力したものと同じです<br> <br> <br> <br> </p> <p>ディスカッションへの返信(解決策)</p> 何をしたいのかわかりません<br> 例の結果は正しくありません! <h2> </h2> 2 番目の出力は間違っており、次のとおりです <p class="sougouAnswer"> $teem []= preg_replace('!s:(d+):"(.*?)";!se', "'s:'.strlen('$2 ' ).':"$2";'", $arr['invoice_type'] ); <br> echo "<pre class="brush:php;toolbar:false">"; </p> print_r($teem); <p class="sougouAnswer"> 出力 <br /> 配列 <br /> ( <br /> [0] => a :2:{s:4:"タイプ";a:3:{i:0;s:8:"個人請求書";i:1;s:8:"企業請求書";i:2;s:0 :"";}s:4:"レート";a:3:{i:0;d:6;i:1;d:6;i:2;d:0;}} <br> ) <br> <br> <br> 私何がしたいのか分かりません<br> 例の結果は間違っています! </p> <p class="sougouAnswer"> </p> <p class="yy"> 2 番目の出力は間違っており、次のとおりです <br> $teem []= preg_replace('!s:(d+):"(.*?)";!se', "'s:'.strlen(' $2 ').':"$2";'", $arr['invoice_type'] ); </p> echo "<pre class="brush:php;toolbar:false">"; <br> print_r($teem); <br> 出力 <br> 配列 <br> ( <br> [0] => ; a:2:{s:4:"タイプ";a:3:{i:0;s:8:"個人請求書";i:1;s:8:"企業請求書";i:2;s : 0:"";}s:4:"レート";a:3:{i:0;d:6;i:1;d:6;i:2;d:0;}} <br> ) <br> <br> <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="sycode" name="code">$s = preg_replace_callback('/s:\d+:"(.+?)";/s', function($r) { $n = strlen($r[1]); return "s:$n:\"$r[1]\";"; }, $s);
マスター、あなたの指示に従って出力データを次のように変更しました
コード
$teem = preg_replace_callback('/s:d+:"(.+?)";/s', '/s:d+:"(.* ?)";/s'