php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 13-01-2009, 14:00
UzumakiNaruto
 Registrierter Benutzer
Links : Onlinestatus : UzumakiNaruto ist offline
Registriert seit: Nov 2004
Beiträge: 642
UzumakiNaruto befindet sich auf einem aufstrebenden Ast
Standard [PHP5] string anhand eines zeichen zerstückeln

hallo,

ich habe ein kleinen denkfehler und google und php.net haben nichts gebracht.

Bsp String:
Hallo ^5Welt, ^4du ^7bist ^3so ^2schön!

gewünschtes ergebnis:
array[0] = "","Hallo";
array[1] = "^5","Welt, ";
array[2] = "^4", "du";
array[3] = "^7", "bist";
array[4] = "^3", "so";
array[5] = "^2", "schön";

explode, preg_split und andere split-funktionen haben mir nicht geholfen
__________________
Gruß
Uzu

private Homepage
Mit Zitat antworten
  #2 (permalink)  
Alt 13-01-2009, 14:08
MelloPie
 PHP Master
Links : Onlinestatus : MelloPie ist offline
Registriert seit: Jan 2002
Ort: Hessen
Beiträge: 4.380
MelloPie ist zur Zeit noch ein unbeschriebenes Blatt
Standard Re: [PHP5] string anhand eines zeichen zerstückeln

Zitat:
Original geschrieben von UzumakiNaruto
explode, preg_split und andere split-funktionen haben mir nicht geholfen
und was haste da genau gemacht?
__________________
Beantworte nie Threads mit mehr als 15 followups...
Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25
Mit Zitat antworten
  #3 (permalink)  
Alt 13-01-2009, 14:14
UzumakiNaruto
 Registrierter Benutzer
Links : Onlinestatus : UzumakiNaruto ist offline
Registriert seit: Nov 2004
Beiträge: 642
UzumakiNaruto befindet sich auf einem aufstrebenden Ast
Standard Re: Re: [PHP5] string anhand eines zeichen zerstückeln

Zitat:
Original geschrieben von MelloPie
und was haste da genau gemacht?
explode gibt mir ein array zurück .. aber ohne ^ und ohne das zeichen dahinter um es zu verarbeiten.

preg_split nur ein fehler:
Warning: preg_split(): No ending delimiter '^'
PHP-Code:
print_r(preg_split('^'$code, -1PREG_SPLIT_OFFSET_CAPTURE)); 
und mir for jedes zeichen einzelt überprüfen ist
a) aufwending und
b) nicht sehr performant
__________________
Gruß
Uzu

private Homepage
Mit Zitat antworten
  #4 (permalink)  
Alt 13-01-2009, 14:19
Kropff
  Administrator
Links : Onlinestatus : Kropff ist offline
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.722
Kropff befindet sich auf einem aufstrebenden Ast
Standard

Code:
preg_split('/\^/',
?

peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
Mit Zitat antworten
  #5 (permalink)  
Alt 13-01-2009, 14:39
UzumakiNaruto
 Registrierter Benutzer
Links : Onlinestatus : UzumakiNaruto ist offline
Registriert seit: Nov 2004
Beiträge: 642
UzumakiNaruto befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Original geschrieben von Kropff
Code:
preg_split('/\^/',
?

peter
danke peter

Code:
Array (
   [0] => Array ( [0] => Hallo [1] => 0 )
   [1] => Array ( [0] => 5Welt, [1] => 7 )
   [2] => Array ( [0] => 4du [1] => 15 )
   [3] => Array ( [0] => 7bist [1] => 20 )
   [4] => Array ( [0] => 3so [1] => 27 )
   [5] => Array ( [0] => 2schön [1] => 32 )
)
bin somit schonmal einen schritt weiter .. jetzt fehlen mir nur noch die ^ davor

###

PHP-Code:
$array preg_split('/\^/',$code, -1PREG_SPLIT_OFFSET_CAPTURE);
   
$arr_count count($array);
   
   for (
$i=0;$i<$arr_count;$i++) {
      if (
substr($code$array[$i][1]-1,1) == "^") {
         
$array[$i][0] = substr($array[$i][0],1);
         
$array[$i][2] = "^".substr($array[$i][0],0,1);
      }
      
print_r($array[$i]);
      echo 
"<br>";
   } 
Code:
Array ( [0] => Hallo [1] => 0 )
Array ( [0] => Welt, [1] => 7 [2] => ^W )
Array ( [0] => du [1] => 15 [2] => ^d )
Array ( [0] => bist [1] => 20 [2] => ^b )
Array ( [0] => so [1] => 27 [2] => ^s )
Array ( [0] => schön [1] => 32 [2] => ^s )
Array ( [0] => ! [1] => 40 [2] => ^! )
__________________
Gruß
Uzu

private Homepage
Mit Zitat antworten
  #6 (permalink)  
Alt 13-01-2009, 14:43
UzumakiNaruto
 Registrierter Benutzer
Links : Onlinestatus : UzumakiNaruto ist offline
Registriert seit: Nov 2004
Beiträge: 642
UzumakiNaruto befindet sich auf einem aufstrebenden Ast
Standard

OffTopic:
ist einer der admins so nett und gibt mir meine edit rechte wieder? danke


so .. war zu voreilig

PHP-Code:
function splitStr($code) {
   
$array preg_split('/\^/',$code, -1PREG_SPLIT_OFFSET_CAPTURE);
   
$arr_count count($array);
   
   for (
$i=0;$i<$arr_count;$i++) {
      if (
substr($code$array[$i][1]-1,1) == "^") {
         
$array[$i][0] = substr($array[$i][0],1);
         
$array[$i][2] = "^".substr($code,$array[$i][1],1);
      }
      
print_r($array[$i]);
      echo 
"<br>";
   }

Code:
Array ( [0] => Hallo [1] => 0 )
Array ( [0] => Welt, [1] => 7 [2] => ^5 )
Array ( [0] => du [1] => 15 [2] => ^4 )
Array ( [0] => bist [1] => 20 [2] => ^7 )
Array ( [0] => so [1] => 27 [2] => ^3 )
Array ( [0] => schön [1] => 32 [2] => ^2 )
Array ( [0] => ! [1] => 40 [2] => ^3 )
würdet ihr das so benutzen oder hättet ihr da verbesserungsvorschläge? ich verwende das mit ajax .. da man sich das zurechtklicken kann und man bei jedem klick die veränderung sehen soll
__________________
Gruß
Uzu

private Homepage
Mit Zitat antworten
  #7 (permalink)  
Alt 13-01-2009, 21:13
jmc
 PHP Junior
Links : Onlinestatus : jmc ist offline
Registriert seit: Mar 2006
Beiträge: 868
jmc befindet sich auf einem aufstrebenden Ast
Standard

Dein oberes Beispiel ist nicht mehr unbedingt das schnellste. Hast du vieleicht noch etwas genauere Vorgaben wie der String aussieht?
Ist z.B. das immer nur eine einstellige Zahl? Kommt die immer genau nach einem ^? Kann das ^ auch sonst vorkommen? Hat es da immer einen Abstand davor?
Mit Zitat antworten
  #8 (permalink)  
Alt 13-01-2009, 21:52
UzumakiNaruto
 Registrierter Benutzer
Links : Onlinestatus : UzumakiNaruto ist offline
Registriert seit: Nov 2004
Beiträge: 642
UzumakiNaruto befindet sich auf einem aufstrebenden Ast
Standard

die ^ sind das "markierungszeichen" dafür das gleich ein spezieler code erscheint.

es müssen nicht nur zahlen sein, buchstaben und sonderzeichen gehen genauso.

leerzeichen oder nicht .. ist völlig egal
__________________
Gruß
Uzu

private Homepage
Mit Zitat antworten
  #9 (permalink)  
Alt 13-01-2009, 22:59
Benutzerbild von fireweasel fireweasel
 Registrierter Benutzer
Links : Onlinestatus : fireweasel ist offline
Registriert seit: Sep 2008
Ort: At home
Beiträge: 851
fireweasel wird schon bald berühmt werdenfireweasel wird schon bald berühmt werden
fireweasel eine Nachricht über AIM schicken fireweasel eine Nachricht über Yahoo! schicken
Standard Re: [PHP5] string anhand eines zeichen zerstückeln

Zitat:
Original geschrieben von UzumakiNaruto
... Bsp String:
Hallo ^5Welt, ^4du ^7bist ^3so ^2schön!

gewünschtes ergebnis:
array[0] = "","Hallo";
array[1] = "^5","Welt, ";
array[2] = "^4", "du";
array[3] = "^7", "bist";
array[4] = "^3", "so";
array[5] = "^2", "schön";

explode, preg_split und andere split-funktionen haben mir nicht geholfen
Ein preg_split() alleine reicht da wohl nicht:

PHP-Code:
$blerk 'Hallo ^5Welt, ^4du ^7bist ^3so ^2schön!';
// nach "^" splitten:
// wenn vor dem "^" mindestens ein Leerzeichen kommen soll
$parts preg_split('/\s+(?=\^)/S'$blerk);
// wenn das "^" alleiniges Trennzeichen ist
//$parts = preg_split('/(?=\^)/S', $blerk);

// Teil-Arrays nochmal aufteilen:
$array = array ();
foreach (
$parts as & $value) {
  
//$array[] = preg_split('/(?<=[0-9])(?=[^0-9])/S', $value);
  
$array[] = preg_split('/(?<=\^.)/sS'$value);

  
// Unter-Array auffüllen, falls nicht "gesplitted" wurde
  
$key key($array);
  if (!isset(
$array[$key][1])) {
    
array_unshift($array[$key], '');
  }

(Wie immer den Quellcode aus der Zitatansicht holen, da sieht man die unterschlagenen Backslashes)

... das Ergebnis kommt deinem Wunscharray schon sehr nahe:
Code:
list(6) {
  [0] => list(2) {
    [0] => string(0) ''
    [1] => string(5) 'Hallo'
  }
  [1] => list(2) {
    [0] => string(2) '^5'
    [1] => string(5) 'Welt,'
  }
  [2] => list(2) {
    [0] => string(2) '^4'
    [1] => string(2) 'du'
  }
  [3] => list(2) {
    [0] => string(2) '^7'
    [1] => string(4) 'bist'
  }
  [4] => list(2) {
    [0] => string(2) '^3'
    [1] => string(2) 'so'
  }
  [5] => list(2) {
    [0] => string(2) '^2'
    [1] => string(6) 'schön!'
  }
}

Geändert von fireweasel (13-01-2009 um 23:23 Uhr)
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

Die RIGID-FLEX-Technologie
Die RIGID-FLEX-TechnologieDie sogenannte "Flexible Elektronik" , oftmals auch als "Flexible Schaltungen" bezeichnet, ist eine zeitgemäße Technologie zum Montieren von elektronischen Schaltungen.

06.12.2018 | Berni

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni


 

Aktuelle PHP Scripte

HeidiSQL - kostenloses MySQL front-end Editor für Windows ansehen HeidiSQL - kostenloses MySQL front-end Editor für Windows

HeidiSQL - ist ein Windows-Editor für die bekannt open Source Datenbank mySQL

10.12.2018 Berni | Kategorie: MYSQL/ Management
piwik Open-Source Webanalyse-Software ansehen piwik Open-Source Webanalyse-Software

piwik ist eine gute Alternative zu Google Analytics. Viele Features und ein modernes Erscheinungsbild mit aussagefähigen Statistiken in Echtzeit

10.12.2018 phpler | Kategorie: PHP/ Besucherzaehler
jQuery Mobile ansehen jQuery Mobile

Touch-Optimized Web Framework für Smartphones & Tablets

09.12.2018 phpler | Kategorie: AJAX/ Framework
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 17:50 Uhr.