WebWork Magazin - Webseiten erstellen lassen, Online Medien, html

Webhoster, Webhosting Provider und Domain registrieren

Home | Registrieren | Einloggen | Suchen | Aktuelles | GSL-Webservice | Suleitec Webhosting
Reparatur-Forum | Elektro forum | Ersatzteilshop Haushalt und Elektronik



Im Homepage und Webhosting-Forum --- Funktion in regulärem ausdruck

Scripte und Programme für PHP, MYSQL. Diskussionen zur Programmierung im Web. Fragen zu CMS, Blogsoftware, Shops, Newsletter und vielen weiteren Scripten.

Forum » PHP & MySQL » Funktion in regulärem ausdruck - 29 April 2024 Antworten
Funktion in regulärem ausdruck
Maasda
Pixelschubser
Threadstarter




Beiträge: 18

Ich weiss, dieses Thema gab es hier schonmal, aber ich bin daraus nicht schleu geworden:

Wie bekomme ich es hin, dass in folgendem Code das stück des Ersatzes noch durch die funktion shortURL() gejagt wird?

1:
$post[text] = preg_replace("#(?\s]+)#si", "".shortURL("$1")."", $post[text]);



---
by Maasda/Julian
http://www.maasda.de

  Profil   Website   Editieren   Zitieren
subjective
Forenheld




Beiträge: 844

Nutze preg_replace_callback - dort kannst du eine Funktion angeben, welche für jeden Treffer aufgerufen wird. Sie bekommt den Treffer als Array übergeben. Du mußt sie also selbst definieren. Im Gegensatz zum Modifier e (evaluate) in preg_replace verzettelt man sich nicht so sehr beim Escaping der diversen Quotes (JS, HTML, PHP).

---
Weaverslave

  Profil   Website   Editieren   Zitieren
Maasda
Pixelschubser
Threadstarter




Beiträge: 18

Danke, hat geklappt!

preg_replace_callback:
1:
$post[text] = preg_replace_callback("#(?\s]+)#si", "shortLink", $post[text]);


Link-kürz-Funktion:
1: 
2: 
3: 
4: 
5: 
6: 
7: 
8: 
9: 
10: 
11: 
12: 
13: 
14: 
15:
// Link-Kuerzen
function shortLink($url)
{
if(strlen(utf8_decode($url[1])) > 50)
{
$linktext = substr($url[1],0,25)."...".substr($url[1],strlen(utf8_decode($url[1]))-20);
}
else
{
$linktext = $url[1];
}

$link = "".$linktext."";
return $link;
}


---
by Maasda/Julian
http://www.maasda.de

Diese Nachricht wurde geändert von: Maasda
  Profil   Website   Editieren   Zitieren
subjective
Forenheld




Beiträge: 844

Fein Fein

Da du für Variablen den String immer unterbrichst könntest du außen rum auch Single Quotes/Hochkomma verwenden. Damit würdest du dir nochmal eine Runde Escaping der Double Quotes für die HTML-Attribute ersparen. Oder du nutzt Single Quotes für die HTML-Attribute.

---
Weaverslave

  Profil   Website   Editieren   Zitieren
Maasda
Pixelschubser
Threadstarter




Beiträge: 18

Sind Single-Quotes für HTML-Attribute denn noch XHTML 1.1 (Strict) valid? Ich dachte, man dürfte nur Double-Quotes verwenden

Wie dem auch sei, die HTML-Attribute mach in allen Projekten mit Double-Quotes.

---
by Maasda/Julian
http://www.maasda.de

Diese Nachricht wurde geändert von: Maasda
  Profil   Website   Editieren   Zitieren
subjective
Forenheld




Beiträge: 844

Es ist beides erlaubt. Sowohl Single wie auch Doublequotes.

---
Weaverslave

  Profil   Website   Editieren   Zitieren
Maasda
Pixelschubser
Threadstarter




Beiträge: 18

Aber hab ich durch das Escaping-sparen irgendwelche nennenswerten Performance Steigerungen? Kann ich mir nicht vorstellen.

Sonst: Hab mich dran gewöhnt, das Escaping immer durchzuziehen, und sollten keine triftigen Gründe dagegen sprechen, behalte ich das bei. Is halt mein Style

---
by Maasda/Julian
http://www.maasda.de

  Profil   Website   Editieren   Zitieren
languitar
Foren-Team




Beiträge: 2795

Du köntnest auch eifnach in PHP einfache Anführungszeichen benutzen. Macht dein (leider) eingebetteten HTML-Code leichter zu lesen.

  Profil   Editieren   Zitieren
subjective
Forenheld




Beiträge: 844

Jep es geht nur um die Lesbarkeit des Quellcodes - Escaping verringert diese stark.

Allerdings finde ich eingebettetes HTML durchaus sinnvoll - nicht jede kleine Anwendung benötigt ein Templatesystem. Wenn man viel mit CSS-Klassen arbeitet, kann man später auch so noch jede Menge formatieren. Ein Templatesystem ist bei kleinen Anwendungen unnötiger Overhead.

---
Weaverslave

  Profil   Website   Editieren   Zitieren
Maasda
Pixelschubser
Threadstarter




Beiträge: 18

Wie würde denn so ein Templatesystem aussehen?

Erst durch PHP sämtlichen Content in Variablen schreiben und dann in ein Template einfügen? Das würde doch mehr RAM kosten, oder?

---
by Maasda/Julian
http://www.maasda.de

  Profil   Website   Editieren   Zitieren
subjective
Forenheld




Beiträge: 844

Richtig - Templatesysteme sind zusätzlicher Overhead - sowohl RAM wie auch Rechenleistung. Bei größeren Anwendungen senken sie jedoch den Entwicklungs- und Pflegeaufwand enorm. Wenn man etwas größere Anwendungen wiederverwenden/weitergeben will, kommt man um ein Templatesystem nicht herum. Um die Geschwindigkeit zu steigern werden oft Ausgabe-Caches verwendet, welche das erzeugte HTML speichern.

Man könnte z.B. Smarty verwenden. Hier werden die Templatedateien zu PHP compiliert, was die Ausführung beschleunigt. Eine Alternative ist eine der XSLT-Extensions für PHP. Hier hat man den Vorteil einer standardisierten Syntax und sehr klarer Trennung des Layouts von der Anwendunglogik.

---
Weaverslave

  Profil   Website   Editieren   Zitieren
Maasda
Pixelschubser
Threadstarter




Beiträge: 18

Ich denke, es ist zwar gut, wenn der Code auch für andere les- und nachvollziehbar ist und bleibt, doch solange ich an diesem Projekt code, werde ich es ersteinmal so lassen bzw. weiter so machen, ohne Template-System also, denn hier kommt es vorallem auf Performance an.
Wenn das Projekt fertig ist (bzw. die erste Version), und stabil läuft, kann ich mir Gedanken darüber machen, wie ich den Quellcode aufräumen kann, sodass ich dann schneller und leichter z.B. neue Addins schreiben kann. Doch das hat im Moment bei mir eine niedrigere Priorität als das Zustandebringen des Projekts.

Auf jeden Fall nochmals vielen Dank für eure Hilfe, hier stösst man mal wirklich auf Leute, die sich auch im Hintergrund auskennen (nennt man auch Experten ^^).

Julian

---
by Maasda/Julian
http://www.maasda.de

  Profil   Website   Editieren   Zitieren
subjective
Forenheld




Beiträge: 844

Ein Templatesystem nachträglich in ein bestehendes System zu integrieren ist allerdings ein ziemlich hoher Aufwand.

---
Weaverslave

  Profil   Website   Editieren   Zitieren
Maasda
Pixelschubser
Threadstarter




Beiträge: 18

Das wäre es dann jetzt allerdings auch schon.
Ich würde es dann warscheinlich nocheinmal von Grund auf programmieren, um es dann auch an die neuesten Standards anzugleichen usw.
Im Moment ist mein PHP einfach so gestaltet, dass es funktioniert, aber zum Beispiel kein OOP mit drinnen oder so. Das müsste dann sowieso in einem neuen Anlauf passieren.

---
by Maasda/Julian
http://www.maasda.de

  Profil   Website   Editieren   Zitieren
 

Antworten
Forum » PHP & MySQL » Funktion in regulärem ausdruck

Aktuelle Beiträge zur Hilfe im Forum für Homepage - Funktion in regulärem ausdruck im Forum Homepage Hosting AntwortenLetztes Posting
Best online slots
in "PHP & MySQL"
0 23.01.2023 22:40 von Sevetr
Rangliste (Ohne Mysql) (Kompliziertes Ordner System)
in "PHP & MySQL"
3 19.07.2021 06:00 von newtopblog
kleines problem mit phpadmin
in "PHP & MySQL"
5 11.04.2021 22:22 von Zavylon
Counter mit PHP
in "PHP & MySQL"
4 22.03.2021 16:29 von Robeni
Fehlermeldung beim Importieren der Datenbank in phpmyadmin
in "PHP & MySQL"
0 02.08.2019 22:14 von iFuchs
CMS für Online Shop
in "PHP & MySQL"
18 26.05.2019 13:29 von raiserle
Regestrierungproblem
in "PHP & MySQL"
3 28.11.2018 13:20 von norbertofahey
PHP Datum ausgeben?
in "PHP & MySQL"
1 19.10.2018 10:04 von Klaus1973
PHP befehl ausführen
in "PHP & MySQL"
11 16.08.2018 09:08 von Klaus1973
Visual Composer selber programmieren?
in "PHP & MySQL"
0 22.01.2017 23:45 von Redji
php preg_replace_callback für dynamischen Link
in "PHP & MySQL"
0 05.07.2016 11:02 von Rm21
PHP Code verschlüsseln
in "PHP & MySQL"
20 21.02.2016 21:25 von Kilian1
migrierter WP-Blog läuft nicht ...
in "PHP & MySQL"
0 04.02.2016 02:01 von Oxygon



Besucher : 7985251    Heute : 69     Gestern : 291     Online : 21     29.4.2024    6:02      0 Besucher in den letzten 60 Sekunden        
Nach oben