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 14-07-2009, 20:10
joextra
 Registrierter Benutzer
Links : Onlinestatus : joextra ist offline
Registriert seit: Jul 2005
Beiträge: 260
joextra ist zur Zeit noch ein unbeschriebenes Blatt
Standard problem mit regulären expression

hallo,

durch ein script, werden sonderzeichen in html code ersetzt. das problem ist das hierbei auch die anführungszeichen im img tag auch konvertiert werden, was aber nicht sein soll.
hier hab mir eine reguläre expression dazu gebastellt, aber es klappt nicht, und ich komme nicht weiter. das ganze sieht bis jetzt so aus:
PHP-Code:
$search "(<img)(&quot;)(>)";
$replace "'";
$text eregi_replace($search$replace$text); 
ich will das alle &quot; innerhalb des img tags in ' ersetzt werden.
__________________
Erfahrungen vererben sich nicht jeder muss sie allein machen.
Mit Zitat antworten
  #2 (permalink)  
Alt 14-07-2009, 22:44
Benutzerbild von onemorenerd onemorenerd
  Moderator
Links : Onlinestatus : onemorenerd ist offline
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.471
onemorenerd wird schon bald berühmt werdenonemorenerd wird schon bald berühmt werden
Standard

Stopp stopp stopp! Was du da machst ist Reparatur, aber du solltest da ansetzen, wo der Schaden entsteht. "Durch ein Script werden Sonderzeichen in HTML Code ersetzt ... hierbei auch die Anführungszeichen im img Tag". Im Klartext: Dieses Script macht das HTML kaputt. Also muss das Script geändert werden. Das ist viel sinnvoller.

Wie konvertiert das Script denn die Sonderzeichen?
Mit Zitat antworten
  #3 (permalink)  
Alt 14-07-2009, 23:16
joextra
 Registrierter Benutzer
Links : Onlinestatus : joextra ist offline
Registriert seit: Jul 2005
Beiträge: 260
joextra ist zur Zeit noch ein unbeschriebenes Blatt
Standard

da hast du natürlich recht. das script ist sehr simpel:

PHP-Code:
$suche[] = '/ä/';
$suche[] = '/Ä/';
$suche[] = '/ö/';
$suche[] = '/Ö/';
$suche[] = '/ü/';
$suche[] = '/Ü/';
$suche[] = '/\"/';
$suche[] = '/»/';
$suche[] = '/«/';
$suche[] = '/©/';
$suche[] = '/–/';
$suche[] = '/€/';


$ersetze[] = '&auml;';
$ersetze[] = '&Auml;';
$ersetze[] = '&ouml;';
$ersetze[] = '&Ouml;';
$ersetze[] = '&uuml;';
$ersetze[] = '&Uuml;';
$ersetze[] = '&quot;';
$ersetze[] = '&raquo;';
$ersetze[] = '&laquo;';
$ersetze[] = '&copy;';
$ersetze[] = '&ndash;';
$ersetze[] = '&euro;';

$text preg_replace($suche$ersetze$text); 
ich wüste jetzt aber nicht wie ich es anstellen sollte das dabei kein html code verändert wird. bin mit regulären expression nicht so fit
__________________
Erfahrungen vererben sich nicht jeder muss sie allein machen.
Mit Zitat antworten
  #4 (permalink)  
Alt 15-07-2009, 00:43
Benutzerbild von onemorenerd onemorenerd
  Moderator
Links : Onlinestatus : onemorenerd ist offline
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.471
onemorenerd wird schon bald berühmt werdenonemorenerd wird schon bald berühmt werden
Standard

Wie wäre es denn mit htmlentities($text, ENT_NOQUOTES)?
Mit Zitat antworten
  #5 (permalink)  
Alt 15-07-2009, 00:53
wahsaga
  Moderator
Links : Onlinestatus : wahsaga ist offline
Registriert seit: Sep 2001
Beiträge: 25.236
wahsaga befindet sich auf einem aufstrebenden Ast
Standard

Wie wäre es denn mit den Bullsh*t lassen, und einfach eine passende Zeichenkodierung verwenden ...?
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
Mit Zitat antworten
  #6 (permalink)  
Alt 15-07-2009, 01:09
joextra
 Registrierter Benutzer
Links : Onlinestatus : joextra ist offline
Registriert seit: Jul 2005
Beiträge: 260
joextra ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Wie wäre es denn mit htmlentities($text, ENT_NOQUOTES)?
das habe ich als erstes probiert. nur ersetzt htmlentities alle zeichen. auch html code. aus <p> wird dann z.b. &lt;p&gt;
also nicht wirklich das ware.

@wahsaga
weil das da nicht so einfach möglich ist. man muss ja immer abwägen zwischen aufwand/nutzen
deswegen wäre es mit regulären expressionen am einfachsten.
__________________
Erfahrungen vererben sich nicht jeder muss sie allein machen.
Mit Zitat antworten
  #7 (permalink)  
Alt 15-07-2009, 01:14
Benutzerbild von onemorenerd onemorenerd
  Moderator
Links : Onlinestatus : onemorenerd ist offline
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.471
onemorenerd wird schon bald berühmt werdenonemorenerd wird schon bald berühmt werden
Standard

Dann kombiniere es halt noch mit str_replace(). Oder streich halt " aus deiner preg_replace-Variante.
Der Aufand für eine passende Kodieruneg wäre übrigens marginal - reicht schließlich ein einziges header().
Mit Zitat antworten
  #8 (permalink)  
Alt 15-07-2009, 12:43
joextra
 Registrierter Benutzer
Links : Onlinestatus : joextra ist offline
Registriert seit: Jul 2005
Beiträge: 260
joextra ist zur Zeit noch ein unbeschriebenes Blatt
Standard

es ist leider nicht möglich das " zu entfernen. muss drin sein.

>> Dann kombiniere es halt noch mit str_replace()
was würde das bringen? ist doch das selbe

ich will doch nur wissen wie die reg ex richtig aussehen muss. das hier funktioniert ja nicht: $search = "(<img)(&quot(>)";
ich weiß, das ist eine bullshit lösung, aber ich mache das für einen bekannten. und da will ich jetzt nicht mehr energie als nötig da rein stecken. aber ich hab bis jetzt schon zu viel zeit investiert (was nicht mein plan war)

nachtrag:
ich geh jetzt mal den anderen weg. bevor die zeichen in html codes umcodiert werden, versuche ich alles was in tags als " eingetragen ist in ' umzuwandeln (die normalen hochkommas werden nicht codiert). bis jetzt bin ich so weit:
$text = preg_replace("/(<\/?)(\"+)([^>]*>)/e", "'", $text);
nur bei (\"+) hängt es. wie muss ich das richtig eintragen damit alle " in ' convertiert werden?
__________________
Erfahrungen vererben sich nicht jeder muss sie allein machen.

Geändert von joextra (15-07-2009 um 13:41 Uhr)
Mit Zitat antworten
  #9 (permalink)  
Alt 15-07-2009, 17:48
joextra
 Registrierter Benutzer
Links : Onlinestatus : joextra ist offline
Registriert seit: Jul 2005
Beiträge: 260
joextra ist zur Zeit noch ein unbeschriebenes Blatt
Standard

es hat sich erledigt. das hier ersetzt alle " durch ' (für diejenigen denen es interessiert):
PHP-Code:
$text preg_replace('/<([^<>]+)>/e''"<" . str_replace("\\\\"", \'\\\'\', "$1") . ">"'$text); 
__________________
Erfahrungen vererben sich nicht jeder muss sie allein machen.
Mit Zitat antworten
Antwort

Lesezeichen


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

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Problem mit dem Ersetzen durch Regulären Ausdruck Heinzelmännchen PHP Developer Forum 4 10-05-2007 17:37
kleines problem mit board-code, regulären ausdrücken usw... CrazyChaos PHP Developer Forum 13 11-01-2005 19:06
kleines Problem mit den regulären Ausdrücken Sigbert PHP Developer Forum 15 19-11-2004 18:39
Problem mit Regulären Ausdruck Heinzelmännchen PHP Developer Forum 7 01-07-2004 12:26
Regular Expression Problem rlebek PHP Developer Forum 1 10-12-2002 22:29

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

ADSMAN V3 - Werbe-Manager ansehen ADSMAN V3 - Werbe-Manager

ADSMAN V3 - mehr als nur ein Bannermanager! Banner, Textanzeigen und PagePeel Manager! Mit ADSMAN PRO haben Sie die Marketinglösung für eine effektive und effiziente Werbeschaltung mit messbaren Ergebnissen. Unterstützt werden Bannerformate in beliebi

25.10.2018 virtualsystem | Kategorie: PHP/ Bannerverwaltung
PHP News und Artikel Script V2

News schreiben, verwalten, veröffentlichen. Dies ist jetzt mit dem neuen PHP News & Artikel System von virtualsystem.de noch einfacher. Die integrierte Multi-User-Funktion und der WYSIWYG-Editor (MS-Office ähnliche Bedienung) ermöglichen...

25.10.2018 virtualsystem | Kategorie: PHP/ News
Top-Side Guestbook

Gästebuch auf Textbasis (kein MySQL nötig) mit Smilies, Ip Sperre (Zeit selbst einstellbar), Spamschutz, Captcha (Code-Eingabe), BB-Code, Hitcounter, Löschfunktion, Editierfunktion, Kommentarfunktion, Kürzung langer Wörter, Seiten- bzw. Blätterfunktion, V

22.10.2018 webmaster10 | Kategorie: PHP/ Gaestebuch
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 08:11 Uhr.