bra Posted December 1, 2006 Report Share Posted December 1, 2006 labdien, Vai lūdzu kāds varētu man palīdzēt izdomāt, ka panākt risinājumu šādai problēmai: ir manīgais $manigais = "šis manīgais satur id {id} vērtību"; ko vēlos panākt ir lai {id} tiktu aistāts ar citu manīgo, bet no masīva sglabājot to id tātd beigu rezūltātam no php vidokļa vaadētu izskatīties šādi $manigais = "šis manīgais satur id ".$row['id']." vērtību"; Zinu ka ir tāda f-cija kā preg_replace(), kas te varētu nederēt, bet diemžēl vel tik labi php neorentējos lai zinātu visu Gadīšu padomus. Paldies par jūsu palīdzību jau iepriekš Link to comment Share on other sites More sharing options...
rpr Posted December 1, 2006 Report Share Posted December 1, 2006 tev jau nemaz nevajag preg_replace echo str_replace("{id}", "jaunā id", "šis manīgais satur id {id} vērtību"); Link to comment Share on other sites More sharing options...
Delfins Posted December 1, 2006 Report Share Posted December 1, 2006 function convertStr($str, $arrName) { return preg_replace( '/\{([^\}]+)\}/', '{\$'.$arrName.'[\1]}', $str ); } print convertStr($str,"arr"); Link to comment Share on other sites More sharing options...
bra Posted December 1, 2006 Author Report Share Posted December 1, 2006 (edited) Delfīns lielspaldies Tev, bet vai tajā pašā preg_replace() nav iespējams arī pēc tam novākt nost tos { } un izrukāt masīva vērtību piemēram es isaucu function convertStr($str, $arrName){ return preg_replace( '/\{([^\}]+)\}/', '{\$'.$arrName.'[\1]}', $str ); } $row = array( 'id'=>'82109' ); $id = convertStr('šitas satur {id}','row'); echo $id; viņš atgriež šitas satur {$row[id]} bet es vēlētos lai atgriež $id = 'šitas satur 82109'; paldies jau iepriekš Edited December 1, 2006 by bra Link to comment Share on other sites More sharing options...
Delfins Posted December 1, 2006 Report Share Posted December 1, 2006 $str = eval( $str ); Link to comment Share on other sites More sharing options...
bra Posted December 1, 2006 Author Report Share Posted December 1, 2006 īsti nesapratu kā šis te man var palīdzēt šinī gadījumā? Link to comment Share on other sites More sharing options...
v3rb0 Posted December 1, 2006 Report Share Posted December 1, 2006 a kam tādu savu {id} izdomāt un mocīt regexus? izmanto standarta variantu. $manigais = 'šis manīgais satur id %d vērtību'; $manigais = sprintf($manigais, $id); Link to comment Share on other sites More sharing options...
bra Posted December 1, 2006 Author Report Share Posted December 1, 2006 šis varinats nav slikts, bet ja grib lai viss notiek automātiksi t.i. es zinu masīva noauku ne uzreiz tā vertības. Link to comment Share on other sites More sharing options...
v3rb0 Posted December 1, 2006 Report Share Posted December 1, 2006 pag, pareizi sapratu - gribi lai $row = array('id1' => 1, 'id2' => 2); un $str = '{id1} un {id2}'; pārtaptu par "1 un 2" ? Link to comment Share on other sites More sharing options...
bra Posted December 1, 2006 Author Report Share Posted December 1, 2006 jā tieši tā Link to comment Share on other sites More sharing options...
v3rb0 Posted December 1, 2006 Report Share Posted December 1, 2006 var arī bez regex function str_and_array($str, $arr) { if(!is_array($arr)) return $str; $keys = array_keys($arr); foreach($keys as $key) $str = str_replace('{'.$key.'}', $arr[$key], $str); return $str; } echo str_and_array('{id1} un {id2} un vēlreiz {id2}', array('id1' => 1, 'id2' => 2)); Link to comment Share on other sites More sharing options...
Recommended Posts