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. |
 |

20-03-2005, 16:36
|
koschda
Newbie
|
|
Registriert seit: Mar 2005
Beiträge: 29
|
|
HTML ersetzen
Hallo!
Ich steh vor nem kleinen Problem. Ich habe einen String nach folgendem Muster:
PHP-Code:
$str = "Hallo<br> <a href=\"#\">Dies</a> ist ein Testtext."
Es kommen also HTML-Befehle darin vor. Die stellen an sich kein Problem dar und sollen erhalten bleiben. Lediglich der Link muss verschwinden.
Das Problem, das ich hab, ist, dass nun der Linktext immer verschieden ist.
jmd eine Idee?
Danke schonmal im Voraus
|

20-03-2005, 16:50
|
penizillin
PHP Guru
|
|
Registriert seit: Feb 2004
Beiträge: 10.166
|
|
wenn der linktext verschieden ist und der link-tag immer gleich: str_replace
wenn der inhalt des link-tags auch variiert: regulärer ausdruck (preg_*)
|

20-03-2005, 17:40
|
koschda
Newbie
|
|
Registriert seit: Mar 2005
Beiträge: 29
|
|
Dann brauch ich nen reg. Ausdruck...
Problem: damit kann ich nicht umgehen^^
Tutorials lesen schlägt übrigens fehl, wie ich grade festgestellt hab
|

20-03-2005, 17:44
|
TobiaZ
 Moderator
|
|
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.421
|
|
tja, nicht gerade die besten voraussetzungen fürs programmieren.
welches tut hasse denn gelesen? das von sky?
im wesentlichen hast du doch nur folgendes.
pseudocode: <a href="(.*)">(.*)</a>
kann evtl im ersten teil noch etwas erweitert werden...
|

20-03-2005, 17:54
|
koschda
Newbie
|
|
Registriert seit: Mar 2005
Beiträge: 29
|
|
ne, das quakenet-php tut
http://tut.php-q.net/
ich kann in php eh nur das nötigste... datenbankabfragen, schleifen etc... eben das was man auch am häufigsten braucht^^
|

20-03-2005, 17:56
|
TobiaZ
 Moderator
|
|
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.421
|
|
Zitat:
eben das was man auch am häufigsten braucht^^
|
das hängt ja immer davon ab, was man macht...
www.php-resource.de/tutorials/read/10/1/
|

20-03-2005, 20:35
|
koschda
Newbie
|
|
Registriert seit: Mar 2005
Beiträge: 29
|
|
Habs im Prinzip verstanden und auch direkt angewendet:
PHP-Code:
$preview = preg_replace('/<a href=(.*)/','',$pre_preview);
So klappt es. Ich weiß nicht warum, aber ich brauche den Tag nicht mal schließen. Text dahinter wird noch angezeigt, aber bis zum </a> ist alles verschwunden.
Wenn mir jetzt noch einer erklären könnte, warum das so ist, wäre ich dankbar.
|

20-03-2005, 21:25
|
TobiaZ
 Moderator
|
|
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.421
|
|
Zitat:
Wenn mir jetzt noch einer erklären könnte, warum das so ist, wäre ich dankbar.
|
Guck dir mal den Quelltext (HTML) an. ich wette der ist sowas von ungültig durch deine operation geworden. Aber browser sind eben großzügig.
|

21-03-2005, 10:42
|
koschda
Newbie
|
|
Registriert seit: Mar 2005
Beiträge: 29
|
|
Ne. Kein Fehler drin. Stimmt alles. Kein abschließendes </a> etc. Der gesamte Link fehlt, der Text danach wird korrekt dargestellt (was mich am meisten wundert, mal gemessen an meinem Kenntnisstand über die reg. Ausdrücke). HTML- Befehle werden danach auch noch korrekt angezeigt.
Hab den Text auch mal ohne preg_replace() ausgeben lassen, da wird der Link korrekt dargestellt.
|

21-03-2005, 10:57
|
TobiaZ
 Moderator
|
|
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.421
|
|
wie sieht denn der Inhalt von $pre_preview aus?
|

21-03-2005, 11:03
|
LuZ1F3R
Newbie
|
|
Registriert seit: Jul 2004
Beiträge: 18
|
|
ich bin bei gott kein profi
aber
$preview = preg_replace('/<a href=(.*)/','',$pre_preview);
gehören in einen link keine redezeichen ?
<a href="LINK">blabla</a>
sorry wenn ich nun mist gelabert hab aber kam mir halt spanisch vor
|

21-03-2005, 11:11
|
TobiaZ
 Moderator
|
|
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.421
|
|
ich sach nur (.*) das schließt deine "Redezeichen" ein.
Geändert von TobiaZ (21-03-2005 um 20:06 Uhr)
|

21-03-2005, 11:13
|
LuZ1F3R
Newbie
|
|
Registriert seit: Jul 2004
Beiträge: 18
|
|
okay *stillschweig*
|

21-03-2005, 11:35
|
koschda
Newbie
|
|
Registriert seit: Mar 2005
Beiträge: 29
|
|
$pre_preview enthält den Inhalt, der über ein Eingabefeld eingegeben wurde. Das ist einfacher Text (schon mit nl2br formatiert) mit HTML- Befehlen wie kursiv und so... Ich hab folgendes als Testtext genommen:
Edit: das mit den Anführungszeichen war schon Absicht.
---
Hier steht ein Text. Nur zum Test. <a href="bla">Hier ist ein Link.</a> Hier nicht. <a href="blabla">Hier schon.</a>. Und wenn das nicht klappt, hab ich einen Fehler gemacht.
Hier ist ein neuer Absatz.
Und hier ein neuer Abschnitt.
Das nenn ich toll.
---
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
Themen-Optionen |
|
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.
HTML-Code ist aus.
|
|
|
|
PHP News
|