eregi_replace omzetten naar preg_replace i.vm. php7

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Nicos Vermeulen

Nicos Vermeulen

03/01/2020 02:36:22
Quote Anchor link
Ben site aan het ombouwen van PHP4 naar PHP7.

Maakte eerst gebruik van eregi, maar deze werkt niet meer in PHP7. Bedoeling is om url's (www, http, https), ftp, mailadressen enz om te zetten naar klikbare links. Nu krijg ik helaas foutmeldingen, en kom hier niet uit.

$bericht = eregi_replace("(^|[ \n\r\t])((http(s?)://)(www\.)?([a-z0-9_-]+(\.[a-z0-9_-]+)+)(/[^/ \n\r]*)*)","\\1<a href=\"\\2\" target=\"_blank\">\\2</a>", $bericht);

$bericht = eregi_replace("(^|[ \n\r\t])((ftp://)(www\.)?([a-z0-9_-]+(\.[a-z0-9_-]+)+)(/[^/ \n\r]*)*)","\\1<a href=\"\\2\" target=\"_blank\">\\2</a>", $bericht);

$bericht = eregi_replace("([a-z_-][a-z0-9\._-]*@[a-z0-9_-]+(\.[a-z0-9_-]+)+)","<a href=\"mailto:\\1\">\\1</a>", $bericht);

$bericht = eregi_replace("(^|[ \n\r\t])(www\.([a-z0-9_-]+(\.[a-z0-9_-]+)+)(/[^/ \n\r]*)*)","\\1<a href=\"http://\\2\" target=\"_blank\">\\2</a>", $bericht);

$bericht = eregi_replace("(^|[ \n\r\t])(ftp\.([a-z0-9_-]+(\.[a-z0-9_-]+)+)(/[^/ \n\r]*)*)","\\1<a href=\"ftp://\\2\" target=\"_blank\">\\2</a>", $bericht);

Heb hier van gemaakt:

$bericht = preg_replace("(^|[ \n\r\t])((http(s?)://)(www\.)?([a-z0-9_-]+(\.[a-z0-9_-]+)+)(/[^/ \n\r]*)*)","\\1<a href=\"\\2\" target=\"_blank\">\\2</a>", $bericht);

$bericht = preg_replace("(^|[ \n\r\t])((ftp://)(www\.)?([a-z0-9_-]+(\.[a-z0-9_-]+)+)(/[^/ \n\r]*)*)","\\1<a href=\"\\2\" target=\"_blank\">\\2</a>", $bericht);

$bericht = preg_replace("([a-z_-][a-z0-9\._-]*@[a-z0-9_-]+(\.[a-z0-9_-]+)+)","<a href=\"mailto:\\1\">\\1</a>", $bericht);

$bericht = preg_replace("(^|[ \n\r\t])(www\.([a-z0-9_-]+(\.[a-z0-9_-]+)+)(/[^/ \n\r]*)*)","\\1<a href=\"http://\\2\" target=\"_blank\">\\2</a>", $bericht);

$bericht = preg_replace("(^|[ \n\r\t])(ftp\.([a-z0-9_-]+(\.[a-z0-9_-]+)+)(/[^/ \n\r]*)*)","\\1<a href=\"ftp://\\2\" target=\"_blank\">\\2</a>", $bericht);

Foutmeldingen:

Warning: preg_replace(): Unknown modifier '(' in /var/www....

Heb al van alles geprobeerd door delimmiters te wijzigen, maar het wordt er niet beter op.

Weet iemand hoe ik dit weer werkend kan krijgen?
Gewijzigd op 03/01/2020 02:37:57 door Nicos Vermeulen
 
PHP hulp

PHP hulp

29/03/2024 11:25:34
 
Frank Nietbelangrijk

Frank Nietbelangrijk

03/01/2020 03:45:24
Quote Anchor link
>> Maakte eerst gebruik van eregi, maar deze werkt niet meer in PHP7. Bedoeling is om url's (www, http, https), ftp, mailadressen enz om te zetten naar klikbare links. Nu krijg ik helaas foutmeldingen, en kom hier niet uit.

Kun je een voorbeeld geven van het resultaat dat je wil bereiken? Ik bedoel te zeggen wat bedoel je met klikbare links?
 
- Ariën  -
Beheerder

- Ariën -

03/01/2020 07:52:03
Quote Anchor link
Je moet nu een afscheiding maken met je eventuele modifier. Zet je pattern bijvoorbeeld tussen / en /

En wow, kwam deze site echt vanaf PHP4? Dan heeft die hosting echt onder een hunebedsteen gelegen.
Gewijzigd op 03/01/2020 07:54:17 door - Ariën -
 
Nicos Vermeulen

Nicos Vermeulen

03/01/2020 12:45:24
Quote Anchor link
- Ariën - op 03/01/2020 07:52:03:
Je moet nu een afscheiding maken met je eventuele modifier. Zet je pattern bijvoorbeeld tussen / en /

En wow, kwam deze site echt vanaf PHP4? Dan heeft die hosting echt onder een hunebedsteen gelegen.


Eigenlijk een beetje onze eigen schuld, we hadden al geruime tijd over gekund, maar hebben het iets te lang laten liggen.

Gelukt! Als ik hem tussen hekjes zet gaat het goed. Met / lukt het niet...

$bericht = preg_replace("#(^|[ \n\r\t])((http(s?)://)(www\.)?([a-z0-9_-]+(\.[a-z0-9_-]+)+)(/[^/ \n\r]*)*)#","\\1<a href=\"\\2\" target=\"_blank\">\\2</a>", $bericht);

$bericht = preg_replace("#(^|[ \n\r\t])((ftp://)(www\.)?([a-z0-9_-]+(\.[a-z0-9_-]+)+)(/[^/ \n\r]*)*)#","\\1<a href=\"\\2\" target=\"_blank\">\\2</a>", $bericht);

$bericht = preg_replace("#([a-z_-][a-z0-9\._-]*@[a-z0-9_-]+(\.[a-z0-9_-]+)+)#","<a href=\"mailto:\\1\">\\1</a>", $bericht);

$bericht = preg_replace("#(^|[ \n\r\t])(www\.([a-z0-9_-]+(\.[a-z0-9_-]+)+)(/[^/ \n\r]*)*)#","\\1<a href=\"http://\\2\" target=\"_blank\">\\2</a>", $bericht);

$bericht = preg_replace("#(^|[ \n\r\t])(ftp\.([a-z0-9_-]+(\.[a-z0-9_-]+)+)(/[^/ \n\r]*)*)#","\\1<a href=\"ftp://\\2\" target=\"_blank\">\\2</a>", $bericht);
Gewijzigd op 03/01/2020 13:00:00 door Nicos Vermeulen
 
- Ariën  -
Beheerder

- Ariën -

03/01/2020 13:07:17
Quote Anchor link
Fijn dat het gelukt is.
Gezien het script al ruim 15 jaar oud zal zijn, raad ik aan om het heel goed door te lichten, en met name op veiligheid. In deze periode is er namelijk al een hoop veranderd.
 
Nicos Vermeulen

Nicos Vermeulen

04/01/2020 00:15:52
Quote Anchor link
- Ariën - op 03/01/2020 13:07:17:
Fijn dat het gelukt is.
Gezien het script al ruim 15 jaar oud zal zijn, raad ik aan om het heel goed door te lichten, en met name op veiligheid. In deze periode is er namelijk al een hoop veranderd.


Wat zou er qua veiligheid niet goed kunnen zijn? Wij gebruiken dit script om newscontent te voorzien van linkjes. Weinig risico toch? Of zie ik iets over het hoofd?
 
- Ariën  -
Beheerder

- Ariën -

04/01/2020 00:18:41
Quote Anchor link
SQL-injectie, XXS, upload-exploits, sessiekaping, cookie-hijacking, csrf?

Een handje vol waar in de jaren 2000 nog niet echt veel naar gekeken werd.
Gewijzigd op 04/01/2020 00:19:13 door - Ariën -
 
Nicos Vermeulen

Nicos Vermeulen

06/01/2020 23:25:23
Quote Anchor link
- Ariën - op 04/01/2020 00:18:41:
SQL-injectie, XXS, upload-exploits, sessiekaping, cookie-hijacking, csrf?

Een handje vol waar in de jaren 2000 nog niet echt veel naar gekeken werd.

Voor ons dus niet gevaarlijk gezien we de content zelf plaatsen.
 
- Ariën  -
Beheerder

- Ariën -

06/01/2020 23:32:56
Quote Anchor link
**kuch**
Totdat er een inlog in iemand anders zijn handen valt, of een wachtwoord eenvoudig te raden is uit uitgelekte lijsten. Of misschien wel dat iemand met cookies of sessies rommelt, en jouw sessie/cookie via een sluwe wijze bij jouw steelt.

Ik raad aan om hier niet te makkelijk over te denken. Als je op sites zoals Tweakers.net en Security.nl de nieuwsberichten leest blijkt maar weer hoe oplettend we moeten blijven zijn in 2020. Vooral SQL-injection is belangrijk, je wilt ook niet dat je zelf je query stuk manipuleert met een quote, zoals in 's Hertogenbosch of dat iemand er misbruik van maakt.
Gewijzigd op 06/01/2020 23:36:19 door - Ariën -
 
PHP ir

PHP ir

07/01/2020 09:06:54
Quote Anchor link
Nicos Vermeulen op 06/01/2020 23:25:23:
Voor ons dus niet gevaarlijk gezien we de content zelf plaatsen.

En ook de enige die deze content lezen?

Het gaat niet alleen om het plaatsen van content, maar ook om het weer ophalen van die content (page.php?id=123'"<). Denk in ieder geval ook aan een login-scherm, enz.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.