• Liebe User, bitte beachtet folgendes Thema: Was im Forum passiert, bleibt im Forum! Danke!
  • Hallo Gemeinde! Das Problem leidet zurzeit unter technischen Problemen. Wir sind da dran, aber das Zeitkontingent ist begrenzt. In der Zwischenzeit dürfte den meisten aufgefallen sein, dass das Erstellen von Posts funktioniert, auch wenn das Forum erstmal eine Fehlermeldung wirft. Um unseren Löschaufwand zu minimieren, bitten wir euch darum, nicht mehrmals auf 'Post Reply' zu klicken, da das zur Mehrfachposts führt. Grußworte.

php + regular expression

Mitglied seit
20.09.2001
Beiträge
1.355
Reaktionen
0
bastel grade für die tot page annem newsscript und hänge durch meine mangelnden regular expession skills ^^ vielleicht kann mir ja wer helfen, brauche das ganze für tags wie [blahblah=45454] also nen fester tag + einen parameter, normale tags sind ja kein problem zu parsen aber bei sowas hab ich kein plan, es geht auch ohne reg expr aber das wird dann zu umständlich und langsam ^^
 

MesH

Guest
Hab mal für nen Kollegen sowas gemacht, weiß net wie umständlich/scheiße das ist, es funkt auf jedenfall :p

Code:
 function ubb($text) {
  $text = stripslashes($text);
  $striptext = $text;
  $stripped = strip_tags($text);
  while ($striptext != $stripped) {
   $striptext = strip_tags($text);
   $stripped = strip_tags($striptext);
  }
  $preg = array( '/(\[url=")(http:\/\/[\/?%:~a-zA-Z0-9._-]+)("\])(.+?)(\[\/url\])/is',                 
                 '/(\[[B|b]\])(.+?)(\[\/[B|b]\])/s',
                 '/(\[[i|I]\])(.+?)(\[\/[i|I]\])/s',
                 '/(\[[u|U]\])(.+?)(\[\/[u|U]\])/s',
                 '/(\[img=")(http:\/\/[\/?%:~a-zA-Z0-9._-]+)("\])/i',
                 '/(\[color=")([#0-9a-fA-F]+)("\])(.+?)(\[\/color\])/is',
                 '/(\[size=")([0-8])("\])(.+?)(\[\/size\])/is', );
  $replace = array ( "<a href='$2' target='_blank'>$4</a>",
                     "<b>$2</b>",
                     "<i>$2</i>",
                     "<u>$2</u>",
                     "<img src='$2' border='0'>",
                     "<font color='$2'>$4</font>",
                     "<font size='$2'>$4</font>", );
  $stripped = preg_replace($preg,$replace,$stripped);
  $stripped = nl2br($stripped);
  return $stripped;
 }
 
Mitglied seit
03.08.2002
Beiträge
3.257
Reaktionen
14
$search = "[blahblah=45454]";
preg_match_all("/\[([\w]+)=([\w]+)\]/",$search,$matches);

print_r($matches);

PHP:
Array
(
    [0] => Array
        (
            [0] => [blahblah=45454]
        )

    [1] => Array
        (
            [0] => blahblah
        )

    [2] => Array
        (
            [0] => 45454
        )

)
 
Mitglied seit
20.09.2001
Beiträge
1.355
Reaktionen
0
nenn mir ne alternative bei günstigen webangeboten :)
 
Mitglied seit
18.07.2001
Beiträge
2.152
Reaktionen
2
Ort
Nürnberg
Original geschrieben von Dari
nenn mir ne alternative bei günstigen webangeboten :)

man kann ja auch nicht gut & guensitg in einem haben, oder?^^
aber ich gebs ja zu, ich bin .NET geschaedigt und mag keine scriptsprachen wie vba, javascript oder php ;)
ob man fuer ASP.NET guenstige hoster auf dem level von LAMP findet sei mal dahingestellt ~
 
Mitglied seit
15.11.2001
Beiträge
1.879
Reaktionen
0
.NET ownt die Scheisse leider sehr hart, da hast du recht (und das von einem Linux Jünger!).
Leider, leider gibts da kaum günstigen, geschweige denn kostenlosen Space.
 

cart

Technik/Software Forum
Mitglied seit
01.08.2002
Beiträge
4.873
Reaktionen
0
Ort
New York
Hmm ich weis ja nicht, ob ich da was falsch verstanden habe, aber ich finde die hier gegebenen Lösung ziemlich umständlich...
Wenn ich das richtig sehe, möchtest du eine Art UBB-Code einbauen. Mein Vorschlag:

PHP:
$news = preg_replace( "/\[i\](.*?)\[\/i\]/is", "<i>$1</i>", $news);
$news = preg_replace( "/\[url=http:\/\/(.*?)\](.*?)\[\/url\]/is", "<a href='http://$1' target='blank'>$2</a>", $news);

Kannst das beliebig auf 10000 Commands erweitern (b, u, ul, li, img....) und es wird schnell abgearbeitet.
 

Sas~iN~LoVe

Guest
Ich bin zwar auch .NET-Fan und habe auch Erfahrung mit ASP.NET, aber für so n kleines News-Skript oder CMS ist das doch absoluter Overkill.

Wobei es LAMPs mit mod_mono doch auch recht günstig geben müsste, oder?
 
Mitglied seit
18.07.2001
Beiträge
2.152
Reaktionen
2
Ort
Nürnberg
Original geschrieben von Sas~iN~LoVe
Ich bin zwar auch .NET-Fan und habe auch Erfahrung mit ASP.NET, aber für so n kleines News-Skript oder CMS ist das doch absoluter Overkill.

Wobei es LAMPs mit mod_mono doch auch recht günstig geben müsste, oder?

das problem ist halt die verbreitung. was am meisten angeboten wird steht auch unter dem groessten konkurrenzdruck. PostgreSQL ist ja auch kostenlos und trotzdem glaub ich nicht, dass man damit so guenstige angebote wie mit dem ueblichen (ich glaube kostenpflichtigen) MySQL findet.

hat hier eigentlich schonmal jemand mit mono gearbeitet? Sind System.Web und System.Data denn schon in nem brauchbaren zustand?
 

Sas~iN~LoVe

Guest
MySQL ist für die meisten Anwendungsfälle auch kostenlos. Ich bin nicht sicher, aber ich denke, dass Hosting auch darunter fällt. Mit Mono gearbeitet habe ich noch nicht, nur mal Hello World mit QT versucht, aber laut go-mono.com sind System.Data und System.Web seit 1.0 fertig.
 
Mitglied seit
20.09.2001
Beiträge
1.355
Reaktionen
0
Original geschrieben von cart
Hmm ich weis ja nicht, ob ich da was falsch verstanden habe, aber ich finde die hier gegebenen Lösung ziemlich umständlich...
Wenn ich das richtig sehe, möchtest du eine Art UBB-Code einbauen. Mein Vorschlag:

PHP:
$news = preg_replace( "/\[i\](.*?)\[\/i\]/is", "<i>$1</i>", $news);
$news = preg_replace( "/\[url=http:\/\/(.*?)\](.*?)\[\/url\]/is", "<a href='http://$1' target='blank'>$2</a>", $news);

Kannst das beliebig auf 10000 Commands erweitern (b, u, ul, li, img....) und es wird schnell abgearbeitet.

yo wollte ne art ubb code :)
 

cart

Technik/Software Forum
Mitglied seit
01.08.2002
Beiträge
4.873
Reaktionen
0
Ort
New York
Also ich hab da mal ein komplettes Script für geschrieben. Wenn du willst, kann ich dir das geben. Sind halt alle gängigen Sachen wie b, u, i li, "read more"-klapptext", smilies usw drin!
 
Mitglied seit
20.09.2001
Beiträge
1.355
Reaktionen
0
die standard tags hab ich drin da ich die komplette website mit dem forensystem gekoppelt hab hätte auch news = foreneintrag machen können aber wollte es doch noch bissl anders haben ^^
nur war der reg expr ausdruck nich so easy zu verstehen wie deiner :D
 

cart

Technik/Software Forum
Mitglied seit
01.08.2002
Beiträge
4.873
Reaktionen
0
Ort
New York
Och ich hab auch noch ein paar kompliziertere Sachen da drin ;)
Allerdings laufen die alle nach dem gleichen System, so dass du die, mit ein bisschen Bastelarbeit und Testen auch selbst hinbekommst.
Der Nachteil ist sicherlich, dass du zu jedem Befehl einen extra regexp-Ausdruck schreiben musst. Das kann man natürlich auch ändern... ;)
Aber ich schätze mal, dass du das auch selber weisst :D
 
Mitglied seit
20.09.2001
Beiträge
1.355
Reaktionen
0
jo so simple tags wie [ b] [/ b] sind natürlich easy will eigentlich nur so tags wie [tag=245] und dann diesen durch nen eintrag aus der datenbank mit der jeweiligen id ersetzen ^^
 

cart

Technik/Software Forum
Mitglied seit
01.08.2002
Beiträge
4.873
Reaktionen
0
Ort
New York
Dann wirst du imho um die Array-Lösung von BiBa nicht drumrum kommen. Denn nur damit kannst du die einzelnen Teile des Tags mit deiner Datenbank vergleichen!
Oder du setzt den ganzen Ausdruck in die DB und schreibst das Script nur so, dass er den ganzen Ausdruck aus der DB holt und ausführt. Dann brauchst du nicht an den Dateien rumbasteln, wenn du was ändern möchtest!
 
Oben