[PHP] BBcode URL => krijg het niet werkend

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • BacardiBreezer
  • Registratie: September 2003
  • Laatst online: 19-06-2005

BacardiBreezer

Breezing Bacardi ?

Topicstarter
Ik zit nu al een paar dagen te stoeien met BBode. Bbcode is opzich niet zo'n groot probleem qua smilies enzz, maar zodra ik met het [url] [/url] verhaal ga beginnen blijkt dat dus niet te werken.

Het lijkt net alsof er over hetvolgende script heen wordt gelezen:

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?

$patterns = array(); 
$replacements = array(); 
$patterns[0] = "#\\[url\]([a-z]+?://){1}(.*?)\\[/url\]#si"; 
$replacements[0] = '<!-- BBCode u1 Start --><A HREF="\1\2" TARGET="_blank">\1\2</A><!-- BBCode u1 End -->'; 
$patterns[1] = "#\\[url\](.*?)\\[/url\]#si"; 
$replacements[1] = '<!-- BBCode u1 Start --><A HREF="http://\1" TARGET="_blank">\1</A><!-- BBCode u1 End -->'; 
$patterns[2] = "#\\[url=([a-z]+?://){1}(.*?)\](.*?)\\[/url\]#si"; 
$replacements[2] = '<!-- BBCode u2 Start --><A HREF="\1\2" TARGET="_blank">\3</A><!-- BBCode u2 End -->'; 
$patterns[3] = "#\[url=(.*?)\](.*?)\\[/url\]#si";        $replacements[3] = '<!-- BBCode u2 Start --><A HREF="http://\1" TARGET="_blank">\2</A><!-- BBCode u2 End -->'; 

$text = preg_replace($patterns, $replacements, $text); 

?>


Hierna heb ik deze ook nog maar geprobeerd (en veel anderen):

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


Nu kwam iemand bij mij aan met een script om het te testen of het eigenlijk wel werkt maar deze loopt vast op de 2e regel.

PHP:
1
2
3
4
<?
$text = "[url]Hoi[/url]"; 
$text = preg_replace("[url](.*?)[/url]","<a href=\"\\1\">\\1</a>",$text);
?>


Ik snap er eigenlijk niets van omdat het met smilies bijvoorbeeld wel goed gaat :(

[ Voor 17% gewijzigd door BacardiBreezer op 21-09-2003 23:12 ]

Jij bent misschien belangrijk, maar ik ben aardig ;)


Acties:
  • 0 Henk 'm!

  • We Are Borg
  • Registratie: April 2000
  • Laatst online: 05:21

We Are Borg

Moderator Wonen & Mobiliteit / General Chat
gelieve php tags te gebruiken.

code:
1
[php]<? hier je code ?> [/php]


Dan krijg je:

PHP:
1
2
3
<?php
echo "hoi BacardiBreezer";
?>


Dan leest het veel makkelijker. Thanks :)

[ Voor 9% gewijzigd door We Are Borg op 21-09-2003 22:49 ]


Acties:
  • 0 Henk 'm!

  • Spider.007
  • Registratie: December 2000
  • Niet online

Spider.007

* Tetragrammaton

• [search=Bbcode] > Daar lijkt mij wel voldoende tussenzitten?

Of wil je dit probleem daadwerkelijk zelf oplossen? • PHP: Pattern Syntax - Manual

[ Voor 13% gewijzigd door Spider.007 op 21-09-2003 23:08 ]

---
Prozium - The great nepenthe. Opiate of our masses. Glue of our great society. Salve and salvation, it has delivered us from pathos, from sorrow, the deepest chasms of melancholy and hate


Acties:
  • 0 Henk 'm!

  • BacardiBreezer
  • Registratie: September 2003
  • Laatst online: 19-06-2005

BacardiBreezer

Breezing Bacardi ?

Topicstarter
Spider.007 schreef op 21 September 2003 @ 23:08:
• [search=Bbcode] > Daar lijkt mij wel voldoende tussenzitten?

Of wil je dit probleem daadwerkelijk zelf oplossen? • PHP: Pattern Syntax - Manual
Ik heb hier alles al afgezocht en bij mij werkt het gewoon niet. PhpFreakz the same.

Sorry Borg wist ff niet hoe het hier werkte 8) THNX !

[ Voor 8% gewijzigd door BacardiBreezer op 21-09-2003 23:13 ]

Jij bent misschien belangrijk, maar ik ben aardig ;)


Acties:
  • 0 Henk 'm!

  • dArtagnan
  • Registratie: Mei 2002
  • Laatst online: 23-08 22:47

dArtagnan

Een voor allen, allen voor een

Laat ik nou heel toevallig hetzelfde script hebben:

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
function ubb($bericht) 
{ 
    $patterns = array(); 
    $replacements = array(); 
    
    $patterns[0] = "#\\[url\]([a-z]+?://){1}(.*?)\\[/url\]#si"; 
    $replacements[0] = '<!-- BBCode u1 Start --><a href="\1\2" target="_blank">\1\2</a><!-- BBCode u1 End -->'; 
    $patterns[1] = "#\\[url\](.*?)\\[/url\]#si"; 
    $replacements[1] = '<!-- BBCode u1 Start --><a href="http://\1" target="_blank">\1</a><!-- BBCode u1 End -->'; 
    $patterns[2] = "#\\[url=([a-z]+?://){1}(.*?)\](.*?)\\[/url\]#si"; 
    $replacements[2] = '<!-- BBCode u2 Start --><a href="\1\2" target="_blank">\3</a><!-- BBCode u2 End -->'; 
    $patterns[3] = "#\[url=(.*?)\](.*?)\\[/url\]#si";
    $replacements[3] = '<!-- BBCode u2 Start --><a href="http://\1" target="_blank">\2</a><!-- BBCode u2 End -->';

    $bericht = preg_replace($patterns, $replacements, $bericht); 
    return $bericht; 
}

Bij werkt het pefect.

Acties:
  • 0 Henk 'm!

  • BacardiBreezer
  • Registratie: September 2003
  • Laatst online: 19-06-2005

BacardiBreezer

Breezing Bacardi ?

Topicstarter
php.ini misschien een module laden ofzo ?? Was bij 3.06 destijds nodig.....


Hey maar dat stukje function mis ik....... hoe ga ik hier mee om ?

[ Voor 62% gewijzigd door BacardiBreezer op 21-09-2003 23:24 ]

Jij bent misschien belangrijk, maar ik ben aardig ;)


Acties:
  • 0 Henk 'm!

  • dArtagnan
  • Registratie: Mei 2002
  • Laatst online: 23-08 22:47

dArtagnan

Een voor allen, allen voor een

Gewoon bovenstaande kopieëren en de rest van de code erin stoppen.
Sla dit op als ubb.php (of iets anders).

PHP:
1
2
3
4
5
6
7
<?
include("ubb.php");

$tekst = "[url]blaat[/url]";
$tekst = ubb($tekst);

?>


En anders moet je nog maar eens de php manual doornemen.
http://nl2.php.net/manual/nl
http://nl2.php.net/manual/nl/functions.php

[ Voor 30% gewijzigd door dArtagnan op 21-09-2003 23:29 ]


Acties:
  • 0 Henk 'm!

  • BacardiBreezer
  • Registratie: September 2003
  • Laatst online: 19-06-2005

BacardiBreezer

Breezing Bacardi ?

Topicstarter
Koraalduivel schreef op 21 September 2003 @ 23:27:
Gewoon bovenstaande kopieëren en de rest van de code erin stoppen.
Sla dit op als ubb.php (of iets anders).

PHP:
1
2
3
4
5
6
7
<?
include("ubb.php");

$tekst = "[url]blaat[/url]";
$tekst = ubb($tekst);

?>


En anders moet je nog maar eens de php manual doornemen.
http://nl2.php.net/manual/nl
http://nl2.php.net/manual/nl/functions.php
Maar aangezien je er dus al van overtuigd bent dat ik de manual niet gelezen heb wil ik je eens vragen waarom mijn testscript op de 2 regel van dit script vastloopt ;)

PHP:
1
2
3
4
<? 
$text = "[url]Hoi[/url]"; 
$text = preg_replace("[url](.*?)[/url]","<a href=\"\\1\">\\1</a>",$text); 
?> 

[ Voor 8% gewijzigd door BacardiBreezer op 21-09-2003 23:37 ]

Jij bent misschien belangrijk, maar ik ben aardig ;)


Acties:
  • 0 Henk 'm!

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 01:18

crisp

Devver

Pixelated

BacardiBreezer schreef op 21 september 2003 @ 23:36:
[...]


Maar aangezien je er dus al van overtuigd bent dat ik de manual niet gelezen heb wil ik je eens vragen waarom mijn testscript op de 2 regel van dit script vastloopt ;)

PHP:
1
2
3
4
<? 
$text = "[url]Hoi[/url]"; 
$text = preg_replace("[url](.*?)[/url]","<a href=\"\\1\">\\1</a>",$text); 
?> 
simpel, omdat het 1e argument van preg_replace een reguliere expressie moet zijn, check de manual voor voorbeelden: http://www.php.net/preg_replace

Intentionally left blank


Acties:
  • 0 Henk 'm!

  • BacardiBreezer
  • Registratie: September 2003
  • Laatst online: 19-06-2005

BacardiBreezer

Breezing Bacardi ?

Topicstarter
Nou ik ga dan maar eens kijken, maar ik snap er geen snars van dat het script bij mij niet wil werken. Smilies doen het goed, het script doet het bij iedereen behalve bij mij :'(

Jij bent misschien belangrijk, maar ik ben aardig ;)


Acties:
  • 0 Henk 'm!

  • dArtagnan
  • Registratie: Mei 2002
  • Laatst online: 23-08 22:47

dArtagnan

Een voor allen, allen voor een

BacardiBreezer schreef op 21 September 2003 @ 23:42:
Nou ik ga dan maar eens kijken, maar ik snap er geen snars van dat het script bij mij niet wil werken. Smilies doen het goed, het script doet het bij iedereen behalve bij mij :'(
PHP:
1
2
3
4
5
6
<? 
$text = "[url]Hoi[/url]"; 
$text = preg_replace("#\\[url\](.*?)\\[/url\]#si","<a href=\"\\1\">\\1</a>",$text); 

echo $text;
?> 

Dit moet het wel doen.

Acties:
  • 0 Henk 'm!

  • BacardiBreezer
  • Registratie: September 2003
  • Laatst online: 19-06-2005

BacardiBreezer

Breezing Bacardi ?

Topicstarter
Yeps werkt zeker !! Thanks want dan kan ik hier op verder gaan bouwen !!

Jij bent misschien belangrijk, maar ik ben aardig ;)


Acties:
  • 0 Henk 'm!

  • BacardiBreezer
  • Registratie: September 2003
  • Laatst online: 19-06-2005

BacardiBreezer

Breezing Bacardi ?

Topicstarter
Zodra ik een functie naar de variable $text zet gaat het fout zie ik nu net. Heeft iemand daar ervaring mee ?

Jij bent misschien belangrijk, maar ik ben aardig ;)


Acties:
  • 0 Henk 'm!

Verwijderd

Wat gaat er precies fout dan & maybe een stukje code? ;)


PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
function ubb($text) 
{
$text = preg_replace("#\\[url\](.*?)\\[/url\]#si","<a href=\"\\1\">\\1</a>",$text); 
// rest van de regexps hier..

return $text;
}

$text = '[url]Hoi[/url]';
$text = ubb($text);
// ^ wat gaat daar fout?
echo $text;
?>

[ Voor 72% gewijzigd door Verwijderd op 22-09-2003 11:53 . Reden: ff wat code ter illustratie ]


Acties:
  • 0 Henk 'm!

  • BacardiBreezer
  • Registratie: September 2003
  • Laatst online: 19-06-2005

BacardiBreezer

Breezing Bacardi ?

Topicstarter
Ow wat stom van mezelf !!! Ik zette de bbcode niet in de functie maar in de pagina zelf en liet daar de functie doorheen gaan. Dat moet de fout zijn ! Ik ga het proberen !

Dank alvast !

Jij bent misschien belangrijk, maar ik ben aardig ;)

Pagina: 1