Du bist nicht eingeloggt.

Login

Pass

Registrieren

Community
Szene & News
Locations
Impressum

Forum / Bits und Bytes

PHP: Nur & aus Links zu & amp; machen

fat32
Experte (offline)

Dabei seit 09.2006
1465 Beiträge
Geschrieben am: 06.01.2007 um 20:58 Uhr
Zuletzt editiert am: 06.01.2007 um 20:58 Uhr

Hallo,

ich ersetze alle & auf einer Seite mit $output = str_replace("&", "& amp;", $output); durch & amp;...

Wie mahe ich es, dass nur die & in Links ersetzt werden?

Danke

PS.: Anders ausgedrückt: ich will alle "&" zu "& amp;" machen, aber NUR WENN sie NICHT teil eines html-zeichens (also & nbsp; oder & gt; oder so sind)

wie geht das?
X_FISH - 50
Champion (offline)

Dabei seit 06.2003
3795 Beiträge

Geschrieben am: 06.01.2007 um 21:04 Uhr

Hm... Hättest du auch einfacher lösen können: http://www.php4-forum.de/befehle/htmlentities.htm

bzw.

http://www.php4-forum.de/befehle/htmlspecialchars.htm.

Warum sollen die HTML-Befehle nicht mit umgewandelt werden? Bei der Ausgabe, z.B. als Link müssten sie eigentlich trotzdem interpretiert werden.

Test:

http://www.mobile.de/cgi-bin/da.pl?bereich=pkw&id=11111111239524040&sr_qual=&sprache=1
X_FISH - 50
Champion (offline)

Dabei seit 06.2003
3795 Beiträge

Geschrieben am: 06.01.2007 um 21:05 Uhr

Hm... Okay... Ich habe vergessen wie die TU-Forensoft mit so vielen Steuerbefehlen umgeht bzw. nicht umgeht. :-)

Nimm einfach den mobile.de-Link und tausche die & in die "& amp;" um. Er funktioniert trotzdem.
fat32
Experte (offline)

Dabei seit 09.2006
1465 Beiträge
Geschrieben am: 06.01.2007 um 21:09 Uhr

Ne, du hast da was falsch verstanden

ich will die & in links zu & amp; machen, weil ich das w3c-bildchen auf miener seite haben will ;-)

und wenn ich jetzt mit str_replace replace, dann macht er aus & nbsp; & nbsp; nbsp (was ich nicht will)
X_FISH - 50
Champion (offline)

Dabei seit 06.2003
3795 Beiträge

Geschrieben am: 06.01.2007 um 21:15 Uhr

Leider verstehe ich es nicht. Hier fehlt eindeutig ein [code]-Tag. :-)
fat32
Experte (offline)

Dabei seit 09.2006
1465 Beiträge
Geschrieben am: 06.01.2007 um 21:17 Uhr

Zitat von X_FISH:

Leider verstehe ich es nicht. Hier fehlt eindeutig ein [code]-Tag. :-)


Was verstehtst du nicht?

Ja, der fehlt ;-)
fat32
Experte (offline)

Dabei seit 09.2006
1465 Beiträge
Geschrieben am: 06.01.2007 um 21:18 Uhr
Zuletzt editiert am: 06.01.2007 um 21:24 Uhr

ob_start();

INHALT VON MEINER SEITE

$output = ob_get_contents();
ob_end_clean();
$output = str_replace("&", "&", $output);
echo $output;

so mach ich das bis jetzt
aber wenn ich auf meiner seite jetzt z.B. & nbsp; stehen hab, dann ersetzt er das "&" von "& nbsp;" wieder mit "& amp;" und dann kommt "& amp; nbsp;" raus, was ich nicht will

wenn jetzt aber wo steht:

< a href="index.php?a=1&b=2 " >Link < /a>
dann soll aus dem "&" im Link ein "& amp;" werden. (weil der w3c validator das so will)

der link soll also zu
< a href="index.php?a=1& amp;b=2 " >Link < /a>
werden

ich brauch ne funktion, die alle & durch & amp; ersetzt, die nicht teil eines HTML-zeichens sind
X_FISH - 50
Champion (offline)

Dabei seit 06.2003
3795 Beiträge

Geschrieben am: 06.01.2007 um 21:33 Uhr

Ah, jetzt! :-)

Meines Wissens ist es in Ordnung das in HTML-Tag, speziell in dem Anchor, in dem Code-Bereich zulässig. Sprich als Link mit Übergabeparametern darf das & verwendet werden. Im Linktext muss das Zeichen umgewandelt werden.

Der Validator kann dies nicht unterscheiden und meckert jedes Zeichen innerhalb des body-Bereichs an.
X_FISH - 50
Champion (offline)

Dabei seit 06.2003
3795 Beiträge

Geschrieben am: 06.01.2007 um 21:38 Uhr

Literatur: über's ampersand.

Die Lösungsmöglichkeit ein anderes Zeichen als das & zu verwenden wird dort auch beschrieben. Aber ob sich der Aufwand lohnt?

Ansonsten: Tauschreihenfolge ändern oder eben die von mir bereits genannten Funktionen ausprobieren. Da diese auf einmal ablaufen werden keine solchen Fehler vorkommen wie es bei dir jetzt der Fall ist.


fat32
Experte (offline)

Dabei seit 09.2006
1465 Beiträge
Geschrieben am: 06.01.2007 um 21:40 Uhr

Zitat von X_FISH:

Literatur: über's ampersand.

Die Lösungsmöglichkeit ein anderes Zeichen als das & zu verwenden wird dort auch beschrieben. Aber ob sich der Aufwand lohnt?


ne, das is zu aufwänding

Zitat von X_FISH:


Ansonsten: Tauschreihenfolge ändern oder eben die von mir bereits genannten Funktionen ausprobieren. Da diese auf einmal ablaufen werden keine solchen Fehler vorkommen wie es bei dir jetzt der Fall ist.


Was meinst du mit Tauschreihenfolge ändern?
fat32
Experte (offline)

Dabei seit 09.2006
1465 Beiträge
Geschrieben am: 06.01.2007 um 21:53 Uhr

Gibt es eigentlich noch ne andere möglichkeit, als alles mit ob_start zu buffern?
weil das is ja auch ncih grad das schnellste
X_FISH - 50
Champion (offline)

Dabei seit 06.2003
3795 Beiträge

Geschrieben am: 06.01.2007 um 21:58 Uhr

Da bin ich der falsche Ansprechpartner. Das ich was wirklich aktiv mit PHP gemacht habe liegt jetzt fast über 3 Jahre zurück... Meine gelegentlichen Programmierfingerübungen für den Privatgebrauch halten mich nicht wirklich soooo fit.

Aber: Wird sich schon ein TUler melden, oder? Mal einen herwinken: :winker:

;-)
Caarcrinolas - 41
Profi (offline)

Dabei seit 02.2006
909 Beiträge

Geschrieben am: 08.01.2007 um 16:57 Uhr
Zuletzt editiert am: 08.01.2007 um 16:59 Uhr

Zitat von X_FISH:

Da bin ich der falsche Ansprechpartner. Das ich was wirklich aktiv mit PHP gemacht habe liegt jetzt fast über 3 Jahre zurück... Meine gelegentlichen Programmierfingerübungen für den Privatgebrauch halten mich nicht wirklich soooo fit.

Aber: Wird sich schon ein TUler melden, oder? Mal einen herwinken: :winker:

;-)

Naja ich halte mich generell aus solchen Postings raus, da ich ansonsten nett im anderen Sinne werde,,,,,

Für dich ist sicherlich die richtige Community www.php-resource.de/forum
Eines der kompetentes Foren im Hinblick auf PHP-Experten Niveu.

Allerdings sei auch gesagt, dass der Ton "rauh" ist.....D.h. angepinnte Threads sollten gelesen werden insbesondere das richtige Formatieren mit den [ php ] [ /php ] Tags. Abgesehen davon sollte bei einer Auflösung von 1024/768 keine horizontalen Scrollbalken auftreten sonst wird niemand antworten....

Wobei auch die Devise ist Hilfe zur Selbsthilfe. Sporatische Manual nicht lesen woller werden hier weder eine eierlegende Wollmilchsau vorfinden noch auf Verständnis stossen. Mir wars immer wurscht wie andere User sich mit den Moderatoren auseinandersetzen, ich habe dort viel gelernt.

Aristoteles: "Es gibt kein großes Genie ohne einen Schuß Verrücktheit."

  [Antwort schreiben]

Forum / Bits und Bytes

(c) 1999 - 2026 team-ulm.de - all rights reserved - hosted by ibTEC Team-Ulm

- Presse - Blog - Historie - Partner - Nutzungsbedingungen - Datenschutzerklärung - Jugendschutz -