login  Naam:   Wachtwoord: 
Registreer je!
 Forum

UBB script werkend krijgen

Offline Valkie - 12/06/2009 23:36 (laatste wijziging 12/06/2009 23:49)
Avatar van ValkieNieuw lid Goeie dag,

Ik ben al een tijd aan het puzzelen met een standaard UBB script.
Ik wil alle audio en films die ik LOKAAL heb staan in de database proppen. Vervolgens via mn lokale pagina de film of muziek opsporen en afspelen met windows media player.

HTML code voor de speler heb ik, alleen wil ik niet continu met mn snuit in het script duiken om steeds maar weer die speler er in te moeten zetten met de juiste locale URL.

Het moet kunnen gaan zoals ongeveer dit:
[video]C://map/nog_een_map/map/naam_van_de_film.extensie[/video]

Nu heb ik in mn huidige ubb script wel de tags youtube erin zitten met de youtube speler. Deze zou je dus in theorie om kunnen bouwen naar de windows media speler.

Maar voordat ik me daaraan waag vraag ik me af hoe ik het werkend kan krijgen...

Als ik in mijn tekst area invoer:
[youtube]nr van het fimfragement[/youtube]

Krijg ik het ook net zo te zien als hier boven.
De parser of wat het ook wezen mag doet niks.
Ik vraag me af hoe ik het ook werkend kan krijgen...

Hier onder de 3 scriptjes:

ubb_parser.php
Plaatscode: 136866
index.php
  1. <?php
  2. // hier even de bestandjes includen
  3. include("config.php");
  4. // hier zetten we het bericht in de database
  5. if(isset($_POST['submit'])) {
  6. $sql = "INSERT INTO gebruikers (bericht) VALUES ('".$_POST['bericht']."')";
  7. $query = mysql_query($sql);
  8. }
  9.  
  10.  
  11. <form method="post" action="index.php">
  12. <textarea name="bericht">
  13. </textarea><br />
  14. <input type="submit" name="submit" value="Verzend bericht" />
  15. </form>
  16. <br />
  17. <a href="lees.php">Lees berichten</a>

lees.php
  1. <?php
  2. include('config.php');
  3. include('ubb-parser.php');
  4.  
  5.  
  6. $query = "SELECT bericht
  7. FROM gebruikers
  8. ORDER BY bericht ASC";
  9.  
  10. if(!$result = mysql_query($query)) {
  11.  
  12. } else {
  13. while($rij = mysql_fetch_object($result)) {
  14. $text = htmlspecialchars($rij->bericht);
  15. }
  16. }
  17.  
  18. echo "<tr>\n";
  19. echo "<td>";
  20. echo ubb_parser($text);
  21. echo "</td>\n";
  22. echo "</tr>\n";
  23. ?>

<br />
<a href="index.php">Schrijf nieuw bericht</a>

6 antwoorden

Gesponsorde links
Offline timmie_loots - 12/06/2009 23:39
Avatar van timmie_loots PHP gevorderde Misschien mulle even mailen op mulle@telenet.be. Ik geef je geen kans dat een verstandig iemand hier dit hele script uit gaat pluizen om ineens je resultaat te bereiken. Mulle weet hoe het werkt en kan je misschien aanwijzingen geven.  
Offline Raze - 12/06/2009 23:43 (laatste wijziging 12/06/2009 23:44)
Avatar van Raze PHP beginner Misschien code-tags?

Je wil ze lokaal afspelen, dus het script is lokaal (localhost) bedoelt?
Als je al een HTML-code hebt, kan via preg_replace (denk ik) een functie uitvoeren, en de functie die wordt uigevoerd moet dan de HTML-code parsen.

  1. $string = preg_replace("#\[video\](.+?)\[/video\]#is","videoHTML(\\1)",$string);


En dan de functie videoHTML, zo zou ik het doen.
Btw die preg_replace klopt niet helemaal, deze is maar vlug gedaan om een voorbeeld te geven. Hopelijk kan je hier verder mee.
Offline Valkie - 12/06/2009 23:44 (laatste wijziging 12/06/2009 23:51)
Avatar van Valkie Nieuw lid Zal ik idd even doen het email adres erin was me niet eens opgevallen.

Mocht ik geen response krijgen meld ik me wel weer.
Op de 1 of andere manier moet iets wat ik wil toch ergenst
haalbaar wezen...

Met die tags kom ik niet helemaal wijs uit. Dacht dat de php openingstag en sluitingstag voldoende was voor higlighting.
En met het bovenstukje met preg_replace of zoiets daar kom ik niet echt wijs uit.

Zoiets heb ik ook in mn huidig stukje script staan en staat ook in overige ubb scriptjes die bij mij niet willen werken.

Mijn query haalt wel de tags uit de database maar haalt ze niet door de parser heen of zo die ze weer omzet naar HTML.
En ik heb geen idee hoe ik dat werkend kan krijgen
Offline timmie_loots - 12/06/2009 23:49
Avatar van timmie_loots PHP gevorderde
Raze schreef:
Misschien code-tags?

Je wil ze lokaal afspelen, dus het script is lokaal (localhost) bedoelt?
Als je al een HTML-code hebt, kan via preg_replace (denk ik) een functie uitvoeren, en de functie die wordt uigevoerd moet dan de HTML-code parsen.

[..code..]

En dan de functie videoHTML, zo zou ik het doen.
Btw die preg_replace klopt niet helemaal, deze is maar vlug gedaan om een voorbeeld te geven. Hopelijk kan je hier verder mee.


Gebruik dan in ieder geval preg_replace_callback(), die functie is ervoor gemaakt om een callback (functienaam) als tweede argument te krijgen.

Bovendien is het gebruiken van een backslash voor backreferences al een tijdje niet meer de voorgeschreven manier. Gebruik een dollarteken (dus in dit geval "videoHTML($1)"), anders kunnen je scripts nog wel eens problemen krijgen met toekomstige versies van PHP.
Offline Valkie - 12/06/2009 23:59 (laatste wijziging 13/06/2009 00:58)
Avatar van Valkie Nieuw lid Ik snap er nu niet zo heel veel meer van.
Ik heb even gekeken op de website achter dat linkje van preg_replace_callback maar dat is allemaal engels en dat van
mij is aardig gelimiteerd 

Moet daarvoor idd nog even een opfris cursus doen....

Ik heb geprobeerd het 1 en ander aan te passen aan de tips van hier boven maar het doet nog niet wat ik wil. Ik krijg alleen een unespected T_Echo te zien op de plaats waar de varaible geechod word.
  1. <?php
  2. include('config.php');
  3.  
  4. $query = "SELECT bericht
  5. FROM gebruikers
  6. ORDER BY id ASC";
  7.  
  8. if(!$result = mysql_query($query)) {
  9.  
  10. } else {
  11. while($rij = mysql_fetch_object($result)) {
  12. $text = htmlspecialchars($rij->bericht);
  13. }
  14. }
  15. $text = preg_replace_callback("#\[video\](.+?)\[/video\]#is",$text);
  16. return "<object id='MediaPlayer1' CLASSID='CLSID:22d6f312-b0f6-11d0-94ab-0080c74c7e95' codebase='http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701'
  17. standby='Loading Microsoft Windows® Media Player components...' type='application/x-oleobject' width='576' height='432'>
  18. <param name='fileName' value='(.+?)\'>
  19. <param name='animationatStart' value='false'>
  20. <param name='transparentatStart' value='false'>
  21. <param name='autoStart' value='false'>
  22. <param name='showControls' value='true'>
  23. <param name='Volume' value='-450'>
  24. <embed type='application/x-mplayer2' pluginspage='http://www.microsoft.com/Windows/MediaPlayer/' src='(.+?)\' name='MediaPlayer1' width=280 height=256 autostart=1 showcontrols=1 volume=-450>
  25. </object>"
  26. echo "<tr>\n";
  27. echo "<td>".$text."</td>\n";
  28. echo "</tr>\n";
  29. ?>
Offline Bart - 13/06/2009 12:37
Avatar van Bart PHP expert RETURN gebruiken buiten een functie??
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.218s