login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Quote in BB | Pagina 2

63 antwoorden

Gesponsorde links
Offline Voldemort - 22/07/2006 15:23
Avatar van Voldemort PHP ver gevorderde Is er geen enkele PHP functie die een image kan verkleinen naar een gewenste breedte en de hoogte automatisch meeveranderd zodat het niet verwrongen is? Is er een andere oplossing?
Offline Richard - 22/07/2006 15:26
Avatar van Richard Crew algemeen nope, alleen javascript
Offline Voldemort - 22/07/2006 15:50
Avatar van Voldemort PHP ver gevorderde En hoe gaat het in Javascript?
Offline Richard - 22/07/2006 15:53 (laatste wijziging 22/07/2006 15:54)
Avatar van Richard Crew algemeen Google
Offline Voldemort - 22/07/2006 17:43 (laatste wijziging 26/07/2006 12:19)
Avatar van Voldemort PHP ver gevorderde Vraag 1: Ik dacht plots als ik de hoogte en breedte met hetzelfde getal laat delen dat het ook wel zo lukken en dat lukte. Het resultaat dit dit:

http://www.plaatscode.be/1488/

Ik breid het binnenkort uit (zorgen dat er ook met de height kan gewerkt worden en als het me lukt dat je ook beide kan instellen en is_file checks enzo) en voeg het toe aan de scripts hier ;).

Edit: Hoe kan ik aan het url van de image raken? Ik heb nu dit:

  1. $url = preg_replace('#\[img\](http://)(.*?)\[/img\]#i','\\1\\2', $tekst);


Alleen krijg ik dan het volledige bericht dat met die class moet geparst worden (de inhoud van $tekst dus). Hoe raak ik aan het url van de image? Ik gebruik maar 1 vorm van de img-tag:

  1. [img]http://www.server.com/image.jpg[/img]


Die andere met [img=] laat ik eruit weg.

Vraag 2: Ik heb een vraagje met de verkorte schrijfwijze:

  1. <?=$ding?>


Is een ; na de variable eigenlijk verplicht? Bij mijn scripts die ik nu met PHP 4 draai maakt het niet uit of er een ; of niet, maar ik weet niet hoe het zit met PHP 5 en hoe het eigenlijk echt zou moeten.
Offline Ibrahim - 25/07/2006 21:40
Avatar van Ibrahim PHP expert Vraag 1:

doe dan preg_match('je regex', $text, $matches);
var_dump die matches, en kijk dan of je die url ziet, probeer wat !

Vraag 2:
hetzelfde: als je had geprobeerd, zou je weten dat bij die shorttags niet verplicht is om een ; erachter te zetten.
Offline Voldemort - 26/07/2006 12:19 (laatste wijziging 28/07/2006 19:36)
Avatar van Voldemort PHP ver gevorderde Vraag 1: Met preg_match werkt het.

Edit: Als de image niet bestaat wil ik dit weergeven: [Image bestaat niet] of iets dergelijks, tekst dus. Want anders geeft getimagesize een warning error (dat het de info van de image niet kan ophalen). "is_link" en "file_exists" als check werken niet. Hoe moet het wel? Met fsockopen?

Edit 2: Niemand?

Vraag 2: Ik heb geprobeerd en het werkte beide, maar omdat vroeger dit eens deed:

  1. html
  2. <?php
  3. include('map/bestand.php')
  4. ?>
  5. html


En dat werkte ook. Daarom zou ik gewoon even willen weten of het ook nog werkt in PHP versie hoger dan 4.
Offline webstab - 28/07/2006 20:02 (laatste wijziging 28/07/2006 20:03)
Avatar van webstab PHP ver gevorderde
Citaat:
Is er geen enkele PHP functie die een image kan verkleinen naar een gewenste breedte en de hoogte automatisch meeveranderd zodat het niet verwrongen is? Is er een andere oplossing?

Misschien wat laat, maar je kan het mss zo proberen.
  1. <?php
  2. $maxWidth = 100;
  3. list($width, $height, $type, $attr) = getimagesize($image);
  4. if ($width > $maxWidth)
  5. {
  6. $value = "<img style=\"width: ".$maxWidth."px;\" src=\"".$image."\" alt=\"\" />";
  7. } else {
  8. $value = "<img src=\"".$image."\" alt=\"\" />";
  9. }
  10. echo $value;
Offline Maarten - 28/07/2006 20:32
Avatar van Maarten Erelid webstab, dat vraagt hij niet, dat is geen resize, dat is gewoon de grootte verkleinen met HTML, dan is de kwaliteit ook ferm verkleind. De methode die hij nu gebruikt is juist, gewoon delen door hetzelfde getal.
Offline Voldemort - 29/07/2006 14:05
Avatar van Voldemort PHP ver gevorderde Als de image niet bestaat wil ik dit weergeven: [Image bestaat niet] of iets dergelijks, tekst dus. Want anders geeft getimagesize een warning error (dat het de info van de image niet kan ophalen). "is_link" en "file_exists" als check werken niet. Hoe moet het wel? Met fsockopen?
Offline Richard - 29/07/2006 14:06
Avatar van Richard Crew algemeen zet een @ voor getimagesize, en kijk of de resultaten die hij teruggeeft kloppen...
Offline Voldemort - 29/07/2006 14:42
Avatar van Voldemort PHP ver gevorderde @ is een lelijke functie, is er geen manier zonder fouten te onderdrukken?
Offline Richard - 29/07/2006 14:44
Avatar van Richard Crew algemeen de @ is bedoeld voor dit soort dingen, je kunt ook gewoon de @ weglaten, maar dan hou je de foutmelding
Offline Voldemort - 29/07/2006 17:58 (laatste wijziging 29/07/2006 17:59)
Avatar van Voldemort PHP ver gevorderde Ik zal het dan met @ doen, dit werkt namelijk wel. Maar nu wou ik kleurtjes inbouwen, code:

http://www.plaatscode.be/1593/

Gebruik:

Citaat:
[color=rood]Rode tekst[/color]
[color=groen]Groene tekst[/color]
[color=oranje]Oranje tekst[/color]


Output met bovenstaande code (html):

  1. <span class="red">Rode tekst</span><br />
  2. <span class="red">Groene tekst</span><br />
  3. <span class="red">Oranje tekst</span>


Bedoelde output (html):

  1. <span class="red">Rode tekst</span><br />
  2. <span class="green">Groene tekst</span><br />
  3. <span class="orange">Oranje tekst</span>


Ik zie de fout niet meteen.
Offline Ibrahim - 29/07/2006 18:00
Avatar van Ibrahim PHP expert porbeer eens met PHP.net: switch
Offline Voldemort - 29/07/2006 18:06 (laatste wijziging 29/07/2006 20:03)
Avatar van Voldemort PHP ver gevorderde Zo dan?

  1. switch($matches[1])
  2. {
  3. case 'rood':
  4. $class = 'red';
  5. break;
  6.  
  7. case 'groen':
  8. $class = 'green';
  9. break;
  10.  
  11. case 'oranje':
  12. $class = 'orange';
  13. break;
  14.  
  15. default:
  16. $class = '';
  17. }


Veranderd niks. Het werkt nog steeds niet.
Offline Richard - 30/07/2006 09:10
Avatar van Richard Crew algemeen Ik zie zo gauw geen fouten hierin, maar ik zie wel iets dat je server mogelijk neer kan halen. Je loopt net zo lang dat de regex valid is, maar je replaced alleen als de kleur goed is. Als ik nou gewoon een tag neerzet met een foute kleur, zal de while in principe eeuwig doorgaan...
Offline Voldemort - 30/07/2006 10:23
Avatar van Voldemort PHP ver gevorderde Hoe moet het dan wel?
Offline Simon - 30/07/2006 10:23
Avatar van Simon PHP expert waarom moet dat per sé met een while loop 
  1. <?php
  2. function parse_color($tekst)
  3. {
  4. $tekst = preg_replace('#\[color=rood\](.*?)\[/color\]#si','<span class="red">\\1</span>', $tekst);
  5. $tekst = preg_replace('#\[color=groen\](.*?)\[/color\]#si','<span class="green">\\1</span>', $tekst);
  6. $tekst = preg_replace('#\[color=oranje\](.*?)\[/color\]#si','<span class="orange">\\1</span>', $tekst);
  7. return $tekst;
  8. }
  9. ?>

gewoon zo kan toch ook?
Offline Voldemort - 30/07/2006 11:12 (laatste wijziging 30/07/2006 12:01)
Avatar van Voldemort PHP ver gevorderde @Simon: Slim gezien . Ik zal jouw methode gebruiken.

Edit: En die code werkt perfect, bedankt!

@JeXuS: Heb het even getest (lokaal ) en het klopt.
Offline Ibrahim - 30/07/2006 21:16 (laatste wijziging 30/07/2006 21:16)
Avatar van Ibrahim PHP expert nja, dat kan ook simon, maar is dat nou echt handig ? voor elke kleur zon regel tikken. Hier heb ik een klein functie geschreven, net, want ik ben dat gevraag naar dit beu 

  1. <?php
  2. function parse_color($tekst)
  3. {
  4. $kleurenArray = array(
  5. 'rood' => 'red',
  6. 'groen' => 'green',
  7. 'oranje' => 'orange'
  8. );
  9. foreach($kleurenArray as $dutch => $english)
  10. {
  11. if(preg_match_all('~\[color='.$dutch.'](.*?)\[/color]~si', $tekst, $matches))
  12. {
  13. $tekst = preg_replace('~\[color='.$dutch.'](.*?)\[/color]~si', '<font color="'.$english.'">\\1</font>', $tekst);
  14. }
  15. }
  16. if(preg_match_all('~\[color=(.*?)](.*?)\[/color]~si', $tekst, $matches))
  17. {
  18. $tekst = preg_replace('~\[color=(.*?)](.*?)\[/color]~si', '<font color="\\1">\\2</font>', $tekst);
  19. }
  20.  
  21. return $tekst;
  22. }
Offline Simon - 30/07/2006 21:21
Avatar van Simon PHP expert @siliecom, ik vind het mijne beter dan het jouwe hoor, het is minder code en de kleurencodes intypen blijft evenveel werk...
Offline Ibrahim - 30/07/2006 21:38 (laatste wijziging 30/07/2006 21:38)
Avatar van Ibrahim PHP expert ja maar de jouwe ondersteunt alleen de kleuren die je intikt, mijne ook #FFFFFF enz.
Offline Voldemort - 30/07/2006 21:46 (laatste wijziging 30/07/2006 21:57)
Avatar van Voldemort PHP ver gevorderde @siliecom14: Ik ga de jouwe gebruiken, die vind ik handiger (met die array is het gemakkelijker uit te breiden en die eigen kleuren ook).

Edit: Als ik bij deze code:

  1. if(preg_match_all('~\[color=(.*?)](.*?)\[/color]~si', $tekst, $matches))
  2. {
  3. $tekst = preg_replace('~\[color=(.*?)](.*?)\[/color]~si', '<font color="\\1">\\2</font>', $tekst);
  4. }


Ook nog een check wil of hegene na [color= wel een echte hexadecimale kleur is, hoe gaat dat dan (want als ik [color=color]Test[/color] doe is het niet meer XHTML valid)? Ik heb geprobeerd met ^\#(.*?), alleen doet die het niet en moest je dan typen #ZZZZZZ zou het ook goed zijn terwijl dit niet hexadecimaal is. Is er een methoden om dit te checken?
Offline ikkedikke - 30/07/2006 22:41
Avatar van ikkedikke PHP expert http://php.net/ctype_xdigit
Offline Richard - 31/07/2006 12:59 (laatste wijziging 31/07/2006 13:07)
Avatar van Richard Crew algemeen
  1. <?php
  2. function parse_color ($text)
  3. {
  4. return preg_replace ('~\[color=(#(?:[a-f0-9]{3}){1,2}|[a-z]+)](.+?)\[/color]~is', '<span style="color: \1;">\2</span>', $text);
  5. }


dit is eigelijk wel voldoende. hoewel je ook verkeerde kleuren (grokl) bijv. kunt invoeren, is dit echt voldoende.
Offline Voldemort - 31/07/2006 13:19 (laatste wijziging 31/07/2006 13:20)
Avatar van Voldemort PHP ver gevorderde Ik heb nu deze code:

  1. <?php
  2. function parse_color($tekst)
  3. {
  4. $kleuren = array('rood' => 'red',
  5. 'groen' => 'green',
  6. 'oranje' => 'orange',
  7. 'roze' => 'roze',
  8. 'paars' => 'purple',
  9. 'geel' => 'yellow',
  10. 'blauw' => 'blue',
  11. 'zwart' => 'black',
  12. 'lblauw' => 'lblue',
  13. 'lgroen' => 'lgreen');
  14.  
  15. foreach($kleuren as $name => $class)
  16. {
  17. if(preg_match('~\[color='.$name.'](.*?)\[/color]~si', $tekst, $matches))
  18. {
  19. $tekst = preg_replace('~\[color='.$name.'](.*?)\[/color]~si', '<span class="'.$class.'">\\1</span>', $tekst);
  20. }
  21. }
  22.  
  23. if(preg_match('~\[color=(.*?)](.*?)\[/color]~si', $tekst, $matches))
  24. {
  25. $hex = substr($matches[1],1);
  26.  
  27. if(ctype_xdigit($hex))
  28. $tekst = preg_replace ('~\[color=(#(?:[a-f0-9]{3}){1,2}|[a-z]+)](.+?)\[/color]~is', '<span style="color: \1;">\2</span>', $tekst);
  29. }
  30.  
  31. return $tekst;
  32. }
  33. ?>


En deze werkt heel goed. Iedereen bedankt!
Offline Richard - 31/07/2006 13:27
Avatar van Richard Crew algemeen die onderste preg_match if kun je compleet vervangen door alleen die preg_replace, die doet precies dezelfde controles als jij wilt.
Offline Voldemort - 31/07/2006 13:41
Avatar van Voldemort PHP ver gevorderde Inderdaad. (Hoe jij het doet om zo'n dingen te maken is niet normaal )
Offline Richard - 31/07/2006 14:27
Avatar van Richard Crew algemeen Wat bedoel je daarmee?:p
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.332s