ubb code

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Top Low-Code Developer Gezocht!

Bedrijfsomschrijving Unieke Kansen, Uitstekende Arbeidsvoorwaarden & Inspirerend Team Wij zijn een toonaangevende, internationale organisatie die de toekomst van technologie vormgeeft door het creëren van innovatieve en baanbrekende oplossingen. Ons succes is gebaseerd op een hecht en gepassioneerd team van professionals die altijd streven naar het overtreffen van verwachtingen. Als jij deel wilt uitmaken van een dynamische, vooruitstrevende en inspirerende werkomgeving, dan is dit de perfecte kans voor jou! Functieomschrijving Als Low-Code Developer ben je een cruciaal onderdeel van ons team. Je werkt samen met collega's uit verschillende disciplines om geavanceerde applicaties te ontwikkelen en te optimaliseren met behulp van Low-code

Bekijk vacature »

Bram

bram

19/04/2008 21:23:00
Quote Anchor link
Ik heb ergens een script gevonden voor ubb codes.
Maar nu heb ik een ubb tag [chord][/chord] toegevoegd.
Hetgene wat tussen de chord tags staat wordt verzonden naar een functie en die functie geeft dan hetgene terug wat er tussen de tags staat.
Maar dit werkt op de een of andere manier niet, zou iemand me kunne helpen?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<?php
function ubb_chord($akkoord) {
return $akkoord;
}

function
replace($text){
//http://www.phphulp.nl/php/scripts/6/251/
        $text = htmlspecialchars($text);
        $text = nl2br($text);


        $text = preg_replace("#\[b\](.*?)\[/b\]#si","<b>\\1</b>", $text);
        $text = preg_replace("#\[u\](.*?)\[/u\]#si","<u>\\1</u>", $text);
        $text = preg_replace("#\[chord\](.*?)\[/chord\]#si","<?php echo ubb_chord('\\1') ?>", $text); // hier heb ik hulp nodig

        $text = preg_replace("#\[url\](.*?)\[/url\]#si","<a href=\\1 target=_blank>\\1</a>", $text);
        $text = preg_replace("#\[url=(.*?)\](.*?)\[/url\]#si","<a href=\\1 target=_blank>\\2</a>", $text);

        $text = preg_replace("#\[img\](.*?)\[/img\]#si","<img src=\\1>", $text);

        $text = preg_replace("#\[color=(.*?)\](.*?)\[/color\]#si","<font color=\\1>\\2</font>", $text);

        $text = preg_replace("#\[move\](.*?)\[/move\]#si","<marquee>\\1</marquee>", $text);

        $text = preg_replace("#\[edit\](.*?)\[/edit\]#si","<font color=orange><b>Edit</b></font>: \\1", $text);


                return $text;
}


$iets = "[chord]G[/chord]";
$text = replace($iets);
echo $text;
?>
Gewijzigd op 01/01/1970 01:00:00 door Bram
 
PHP hulp

PHP hulp

29/03/2024 15:49:47
 
Jesper Diovo

Jesper Diovo

19/04/2008 21:29:00
Quote Anchor link
Regel 14:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
$text
= preg_replace("#\[chord\](.*?)\[/chord\]#si","<?php echo ubb_chord('\\1') ?\>", $text); // hier heb ik hulp nodig
?>

Zo werkt dat natuurlijk niet h. Je voert hier in een PHP script opnieuw PHP uit en je wil in een var echo uitvoeren. Beetje tegenstrijdig.

<?php
$text
= preg_replace("#\[chord\](.*?)\[/chord\]#si", ubb_chord("\\1"), $text);
?>

Zal het misschien beter doen (zeker ben ik ook weer niet).
Gewijzigd op 01/01/1970 01:00:00 door Jesper Diovo
 
Bram

bram

19/04/2008 21:51:00
Quote Anchor link
bedankt maar nu is er nog een probleem
in de functie ubb_chord heb ik dit staan:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
$data = mysql_query("SELECT * FROM akkoorden WHERE naam=".$akkoord) or die(mysql_error());


dan krijg ik de volgende error:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '\1' at line 1
 
Frank -

Frank -

19/04/2008 21:58:00
Quote Anchor link
Wanneer de kolom naam een string bevat, zul je de waardes ($akkoord in dit geval) in je SQL wel tussen quotes ' moeten zetten. Dat heb jij hier niet gedaan.

Zet voortaan de query ook eerst in een variabele en laat de functie mysql_query() deze variabele uitvoeren. Dan kun je bij debuggen de query nog eens echoen en zien wat er nu daadwerkelijk aan SQL richting de database wordt gestuurd. Nu moeten we daar naar raden.
 
Bram

bram

20/04/2008 11:29:00
Quote Anchor link
Het blijkt om de een of andere manier maar niet te werken, dit zou normaal de uitkomst zijn als ik [chord]G[/chord] zou typen.

G
e |--- 3 ---
B |--- 3 ---
G |--- 0 ---
D |--- 0 ---
A |--- 2 ---
E |--- 1 ---

en dit is dan de functie ubb_chord
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
function ubb_chord ($akkoord) {
$query = "SELECT * FROM akkoorden WHERE naam='".$akkoord."'";
$data = mysql_query($query) or die(mysql_error());
echo "<table><tr>";
while($info = mysql_fetch_array( $data ))
{  
echo "<td><table><tr><td collspan=4><b><u>".$info['naam']."</u></b></td></tr>";
echo "<tr><td>e</td><td>|---</td><td>".$info['snaar1']."</td><td>---</td></tr>";
echo "<tr><td>B</td><td>|---</td><td>".$info['snaar2']."</td><td>---</td></tr>";
echo "<tr><td>G</td><td>|---</td><td>".$info['snaar3']."</td><td>---</td></tr>";
echo "<tr><td>D</td><td>|---</td><td>".$info['snaar4']."</td><td>---</td></tr>";
echo "<tr><td>A</td><td>|---</td><td>".$info['snaar5']."</td><td>---</td></tr>";
echo "<tr><td>E</td><td>|---</td><td>".$info['snaar6']."</td><td>---</td></tr></table></td>";
}
echo "</tr></table>";
}

Maar om de een of andere manier selecteert de query niets, want de functie werkt wel, ik heb het al eens geprobeerd door in ubb_chord op de eerste regel dit te schrijven:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
$query = "SELECT * FROM akkoorden WHERE naam='G'";
Gewijzigd op 01/01/1970 01:00:00 door bram
 
Jelmer -

Jelmer -

20/04/2008 12:21:00
Quote Anchor link
Ten eerste moet het zijn:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$text
= preg_replace_callback("#\[chord\](.*?)\[/chord\]#si", "ubb_chord", $text);
?>

en dan moet je de ubb_chord functie ook even aanpassen. Bijvoorbeeld:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?php
function ubb_chord($matches)
{

    return strtoupper($matches[1]);
}


$text = 'Hello [chord]World and [/chord] others';
$text = preg_replace_callback("#\[chord\](.*?)\[/chord\]#si", "ubb_chord", $text);
echo $text;
?>


En als 2e moet je $machtes[1], of $akkoord in jouw script, nog even door mysql_real_escape_string halen zodat quotes geen schade meer kunnen veroorzaken.
 
Bram

bram

20/04/2008 20:13:00
Quote Anchor link
bedankt het werkt nu :)
 



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.