login  Naam:   Wachtwoord: 
Registreer je!
 Forum

preg_replace pattern. (Opgelost)

Offline faithmike - 12/02/2008 16:05 (laatste wijziging 12/02/2008 16:08)
Avatar van faithmikeNieuw lid Hoi,

Ik ben bezig met een ubb script tot nu toe ging alles goed maar ik loop tegen een probleempje aan waar ik niet aan uitkom.

in mijn ubb check ik
  1. [url=www.link.nl]www.link.nl[/url]


Nu wil ik ook automatisch http://www en www.etc laten vervangen door <a href etc.

Dit is allemaal gelukt maar nu wil voorkomen dat wanneer iemand gebruik maakt van ubb code en een spatie tussen de tags zet dat deze link ook convert.

Momenteel gebeurt er dus dit:
  1. [url=www.link.nl] www.link.nl[/url]

wordt:
  1. <a href="link"> <a href="link"> link </a> </a>

Mijn code is als volgt:
(array in class met preg_replace)
  1. '/(?<!\S{1})(www\.)(.*?)(\s)/si',
  2. '/(?<!\S{1})(http:\/\/)(.*?)(\s)/si'
  3.  
  4. ' <a href="http://www.${2}" target="_blank">www.${2}</a> ',
  5. ' <a href="http://${2}" target="_blank">${2}</a> '


Ik check dus op de aanwezigheid van geen non whitespace.
Nu zou ik dus willen controleren op de aanwezigheid van 2 characters voor http of www en kijken of deze geen ] bevat.

Groeten michael

4 antwoorden

Gesponsorde links
Offline Filip - 12/02/2008 16:07 (laatste wijziging 12/02/2008 16:08)
Avatar van Filip IRC guru Gebruik codetags voor je code op het forum te zetten!
EDIT:: was al aangepast... nevermind dus 

handige site om regex te maken: http://www.txt2re.com/
Offline faithmike - 12/02/2008 16:13
Avatar van faithmike Nieuw lid Thx voor je snelle reactie alleen word ik niet bepaald veel wijzer van deze site. Ik moet controleren of iets niet aanwezig is voordat hij gaat replacen en dat moet 2e character voor de string zijn en dat lukt mij niet het is niet zozeer pattern zelf.

Thx anyways.
Offline Bart - 12/02/2008 16:17
Avatar van Bart PHP expert
faithmike schreef:
Thx voor je snelle reactie alleen word ik niet bepaald veel wijzer van deze site. Ik moet controleren of iets niet aanwezig is voordat hij gaat replacen en dat moet 2e character voor de string zijn en dat lukt mij niet het is niet zozeer pattern zelf.

Thx anyways.
Met die regex site die Nephi je gaf kan je een pattern maken.

Bijvoorbeeld:
Jij wilt een email adres controle uitvoeren.
Dan typ je emailadres@site.com, dan kan je daar in het scherm dingen aanklikken waarop je je regex wilt basseren.
Zo heb je een pattern voor je controle.
Offline faithmike - 12/02/2008 16:28
Avatar van faithmike Nieuw lid uhh naja ik heb net even gekeken maar kan er nog niet echt wijs uit.

Ik heb ieder geval een oplossing gevonden voor mijn probleem.

Ik heb ervoor gekozen om excessive whitespace achter de closing ubb brackets weg te halen met een andere preg_replace. Dit lost het op maar is niet de ideale oplossing in mijn ogen.

Mocht er iemand een oplossing weten die het in 1 pattern oplost zou ik dit nog graag willen zien.

Oplossing:
  1. '/(\]|>)(\s)/',
  2.  
  3. Replace:
  4. '${1}'


Greetz
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.21s