# zeichen aus zeichenkette entfernen



## cent (30. Dezember 2001)

hi, 
wie kann man von einer zeichenkette mehere zeichen entfernen. also ich habe z.B. 

$der_code = ' 

<html> 
<head> 
<title>Untitled Document</title> 
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> 
</head> 

<body bgcolor="#FFFFFF" text="#000000"> 
<table width="100%" border="1" cellspacing="0" cellpadding="0"> 
  <tr> 
    <td>sfgsfgsfdg</td> 
  </tr> 
</table> 
</body> 
</html> 
'; 

und möchte nun 

<html> 
<head> 
<title>Untitled Document</title> 
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> 
</head> 

<body bgcolor="#FFFFFF" text="#000000"> 

und 

</body> 
</html> 

entfernen. wie ginge das? 

ist es außerdem möglich den ersten teil zu entfernen auch wenn 
<title>Untitled Document</title> anderst ist. also  z.B. 
<title>neuer titel</title> lautet? ...... im grunde müste man ja dann 
angeben: löschen von <html> bis <body bgcolor="#FFFFFF" text="#000000"> 

danke schon einmal


----------



## apric (30. Dezember 2001)

*hmmm*

dazu müsste man erst wissen, ob diese datei eine feste zeilenanzahl besitzt (wäre sehr hilfreich),
dann könnte man mit  _@fopen()_  das file öffnen, und die betreffenden zeilen auslesen.

besser wäre es jedoch, nur nach dem "mittelteil" zu suchen.
dazu müsstest du den string mit  _spliti()_  in ein array aufteilen, und so den mittelteil ausgrenzen, 
dazu bräuchtest du feste fixpunkte, die immer gleich bleiben (z.b.  _<body bgcolor="#FFFFFF" text="#000000">_ ).
dann hast du ein array mit 2 elementen (1: anfang bis _<body bgcolor="#FFFFFF" text="#000000">_; 2: rest des strings).
dieses 2. array-element wieder splitten (an der stelle vor _</body>_  oder  _</body>_  als "trennelement",
dann musst du dieses tag mit  _str_replace()_)
dann das ganze mit  _implode()_  zusammenfügen/ergänzen.

auf http://www.php.net findest du eine tolle (auch deutsche) funktionsreferenz, die weitgehend selbstklärend ist.
man muss halt nur wissen, welche befehle man sucht.


mit der funktionsreferenz kriegst du das bestimmt selbst hin.
du bräuchtest also folgende befehle:

spliti
implode
str_replace


----------



## sven_raven (30. Dezember 2001)

oder mit Regular Expressions

-> im Manual nach

eregi_replace()
ereg_replace()
ereg()
eregi()


----------



## sven_raven (30. Dezember 2001)

> dazu müsstest du den string mit spliti() in ein array aufteilen


nimm statt *spliti()* bzw. *split()* lieber *explode()*!
Denn split und spliti sind für regular expressions gedacht und wenn du die dür einfache Zeichenkettenverarbeitung benutzt is das verschwendung von ressourcen und kostet nur ladezeit


----------



## apric (30. Dezember 2001)

*...*

oder so is eigentlich egal, ich denke mal nicht, dass sein script soooooooooooo große datenmengen bearbeiten soll (weniger als 1kB).

naja musste spliti() bei meinem script nutzen, dass ich geschrieben habe, dachte, man könnte das übertragen ohne weiteres.

nun gut, soll er entscheiden, was er nehmen will.


----------

