ZuVieL Geschrieben 3. März 2007 Geschrieben 3. März 2007 hi, ich hab einen string in dem string ist irgednwo so etwas in der art vorhanden: {1:2:3:4} wie bekomme ich diesen part ausgelesen? Zitieren
e@sy Geschrieben 3. März 2007 Geschrieben 3. März 2007 SELFHTML Forumsarchiv / 2003 / September / string auslesen semikolon als trennzeichen Zitieren
etreu Geschrieben 3. März 2007 Geschrieben 3. März 2007 Hast du dich schon mit regulären Ausdrücken beschäftigt? Zitieren
Chris86 Geschrieben 4. März 2007 Geschrieben 4. März 2007 Hoi, hier hast du eine Beschreibung von der offiziellen Dokumentation zum Thema substr() ... Link Mfg Chris Zitieren
Einherjer Geschrieben 12. März 2007 Geschrieben 12. März 2007 -> PHP Stringfunktionen Weniger als eine Minute Arbeit - ca. 30 Lösungsansätze für dein Problem, inkl. Tutorials, blabla... Zitieren
ZuVieL Geschrieben 13. März 2007 Autor Geschrieben 13. März 2007 lösung habe ich schon lange gefunden... danke aber ganz so einfach wars auch nicht... Zitieren
e@sy Geschrieben 13. März 2007 Geschrieben 13. März 2007 Wäre ja nett wenn du die Lösung hier kundtun würdes. Dann können andere auch ihren nutzen daraus ziehen. Zitieren
ZuVieL Geschrieben 13. März 2007 Autor Geschrieben 13. März 2007 //setze i auf 0 $i = 0; //gehe gesamten string durch while($i == '0') { //definiere zeichen1 $zeichen1 = '{'; //definiere zeichen2 $zeichen2 = '}'; //hole position von $zeichen1 $pos1 = strpos($inhalt, $zeichen1); if($pos1 == '' OR empty($pos1)) { //setze i auf 1 wenn keine position mehr gefunden wurde und beende while $i = 1; }//if ende else { //schneide alles ab bis $pos1 (postion1) $inhalt_sub = substr($inhalt, $pos1); //hole pos von $zeichen2 (position2) $pos2 = strpos($inhalt_sub, $zeichen2); //schneide alles ab von postion 0 bis ziechen position2 + 1 $inhalt_sub2 = substr($inhalt_sub,0 , $pos2+1); //schreibe nun von zeichen 0 pis position + 1 in array $bild_arr[] = $inhalt_sub2; //ersetze gesamten string mit '' $inhalt = str_replace($inhalt_sub2, '', $inhalt); }//ende else }//while ende [/PHP] $inhalt wird mit dem string gefüllt welcher inhalte enthält wie {hallo} oder {blablabla} diese strings werden nun im array $bild_arr gespeichert und können in einer erneuten schleife ersetzt werden oder sonst was werden mein zweck hat es erfüllt: meine stringketten sahen ca so aus: {5,0,1} das sollte ein bild ergeben die erste 5 steht für das bild mit der id 5 welches ich aus der db hole. die 0 für den rahmen oder keinen und die 1 für die größe des bilder groß für 1 und 0 für n thumbnail vielleicht hätte man es auch einfacher lösen können,... aber der pro bin ich ja nicht Zitieren
Monty82 Geschrieben 14. März 2007 Geschrieben 14. März 2007 Mit regulären Ausdrücken hätte es so aussehen können: <?php $strTmp = 'das ist ein {5,0,1} test {5,0,0} zum ersetzen von bildern'; $arrReplace = array(); if (preg_match_all('/{([0-9]+),([01]),([01])}/s',$strTmp,$arrPregRes) > 0) { if (is_Array($arrPregRes) && is_Array($arrPregRes[0])) { foreach ($arrPregRes[0] as $key=>$val) { if (is_Array($arrReplace) && !array_key_exists($val,$arrReplace)) { $intImgId = intval($arrPregRes[1][$key]); $intBorder = intval($arrPregRes[2][$key]); $intSize = intval($arrPregRes[3][$key]); if ($intSize == 1) $strFile = 'bild_mit_id_'.$intImgId.'_gross.jpg'; else $strFile = 'bild_mit_id_'.$intImgId.'_klein.jpg'; $arrReplace[$val] = '<img src="'.$strFile.'" border="'.$intBorder.'">'; } } } } if (is_Array($arrReplace)) { foreach ($arrReplace as $key=>$val) { $strTmp = str_replace($key,$val,$strTmp); } } echo $strTmp; ?> [/PHP] Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.