![]() |
PHP: gleichwertige alternative zu str_ireplace
sers
was gibts es für eine ähnliche und gleichwertige funktion bei PHP wie str_ireplace (nicht str_replace). (das i bedeutet case insensitive). |
|
*yuk*
argl ich mag ereg_* und preg_* ned weil man da immer mit den ^ und \ etc herumschei*en muss :mad: und ich hab bis jetzt noch nix gefunden wie das ordentlich funktioneren soll :heul: |
Und warum magst str_ireplace ned?
|
Zitat:
und weder auf meinem lokalen server noch auf dem space läuft schon die 5er version.... |
in 2 Schritten?
strtolower oder mb_strtolower und dann str_replace gruss, snowman |
Zitat:
warum das ganze ich brauch einen bbcode=>html und wieder back konverter. in allen gängigen php-sw's wird es aber mit preg_replace oder ereg_replace gemacht :( so. mein code: PHP-Code:
hilfe wird gerne entgegen genommen. ajo ich muss das strtolower($text) wegbekommen weil ich sonst eben einen lowercase string zurückbekomm was ich aber ned will |
:eek: WTF?
Was macht der code? |
|
In Perl (die regex sollte in PHP auch funktionieren):
Code:
$x = '[url=www.wcm.at]wcm[/url]'; |
Zitat:
da kenn ich mich ja hint und vorn ned aus :eek: :( |
Code:
Ersetze \[url=(.*?)\](.*?)\[\/url\] durch <a href=\"$1\">$2<\/a> |
Zitat:
was soll das (.*?) und was is $1 und $2? |
Wenn Du in einer RegEx was mit runden Klammern klammerst, kannst Du im Ersetzen-Teil bzw. nach der Suche auf das, was in den Klammern steht, über $ZAHL zugreifen, wobei für den Wert von ZAHL die "(" von links nach rechts gezählt werden.
.* markiert alles ;) und mit dem "?" sag man ihm, dass er mit dem .* aufhören soll, wenn er auf das erste [/url] stößt. Ohne dem "?" würde er bis zum letzten [/url] weiterlaufen. |
:idee:
danke. :) nur ein prob bleibt wenn ich einen text hab zb: Code:
[#url]www.wcm.at[/url] PHP-Code:
|
in Perl setzt man dazu hinter der Option "i" auch noch das "g", dann macht er alle in dem String.
Wie das bei PHP geht, musst Du im Manual nachsehen. |
Eckige Klammern müssen maskiert werden, da sie normalerweise eine Zeichklassendefinition einleiten.
\[url\] ~ |
Da hat der potassium wieder schlampert von mir abgeschrieben ;)
|
Zitat:
@_m3: :p:D |
|
[code]
$y = 'WCM'; $y =~ s/\<a href=\"(.*?)\"\>(.*?)\<\/a\>/\[url=\"$1\"\]$2\[\/url\]/i; print "$y\n"; [/code] |
Also, so wie ich das sehe wäre BBCodeParser genau das Richtige für unseren alkalischen Freund :)
Und ich muss wohl noch irgendwo eine aktuellere version dieser RegEx herumliegen haben - mal sehen... ~ |
Hab's schon - sollte aber wahrscheinlich mal wieder genauer untersucht werden - ich weiß nämlich nicht ob sie noch das tut was sie soll:
{((?<!src="|href="|url="|src=|href=|url=)http:\/\/|ftp:\/\/|news:\/\/|((?<!http:\/\/)www\.))([\w\-.]+[^,.;:?!/<\s])([/\w.#?&=%+@~*_\-,;:]*?)(?=[,.;:?!<]*([^/\w.#?&=%+@~*_\-,;:]|$))}i ~ |
Zitat:
aber warum escapest im replace-teil? und warum die " ? |
Alle Zeitangaben in WEZ +2. Es ist jetzt 00:55 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag