Neenee, dit zijn regexps die van [ url = text ] andere tekst [ /url ] uitgaan.quote:Op vrijdag 11 maart 2005 13:10 schreef SuperRembo het volgende:
Je doet veel te moeilijk
[ code verwijderd ]
Jajajaquote:Op zaterdag 12 maart 2005 09:15 schreef Swetsenegger het volgende:
[..]
Neenee, dit zijn regexps die van [ url = text ] andere tekst [ /url ] uitgaan.
Mijn eerste regexp parst gewoon urls die je intikt. Net zoals hier op fok wanneer ik www.nu.nl intik
1 2 3 4 | Test 1: http://foo.com lorum ipsum Test 2: www.foo.com lorum ipsum Test 3: [url=http://foo.com]Foo[/url] lorum ipsum Test 4: [url=foo.com]Foo[/url] lorum ipsum |
1 2 3 4 | Test 1: <a href="http://foo.com">http://foo.com</a> lorum ipsum Test 2: <a href="http://www.foo.com">www.foo.com</a> lorum ipsum Test 3: <a href="http://foo.com">Foo</a> lorum ipsum Test 4: <a href="http://foo.com">Foo</a> lorum ipsum |
1 2 3 | if($_POST['checkbox'] == 'on'){ $message .= "object waar ik net vdanaan kwam is : ".$_POST['text_vak_bij_checkbox']; } |
Ik wil juist dat óf dat het onderwerp de naam van het object is waar ze net vandaan kwamen óf dat ze zelf een vraag als ondwerp kunnen invoeren.quote:Op zaterdag 12 maart 2005 13:24 schreef ikke_ook het volgende:
Kun je niet beter een checkbox gebruiken ipv een radiobutton?Je vraag klinkt alsof je dat wil namelijk
[ code verwijderd ]
Zoiets?
Zou idd ook kunnen ja! Maar is het überhaupt mogenlijk? Want hoe zorg je dat als een checkbox is aangevinkt de value van de textbox wordt verzonden...quote:Op zaterdag 12 maart 2005 14:33 schreef Roönaän het volgende:
Je kan toch gewoon die textarea prefillen en als ze iets anders willen, doen ze dat wel toch?
Die checkbox valt dan toch weg?quote:Op zaterdag 12 maart 2005 14:36 schreef gieling het volgende:
[..]
Zou idd ook kunnen ja! Maar is het überhaupt mogenlijk? Want hoe zorg je dat als een checkbox is aangevinkt de value van de textbox wordt verzonden...
Ja maar los daarvan: zou het kunnen?quote:
Ehh.. ik snap het niet helemaal, je bedoelt dus dat ik jou stukje code 2x moet doen 1x voor textbox en 1x keer voor de object_naam waar de bezoeker net vandaan kwam?quote:Op zaterdag 12 maart 2005 14:40 schreef ikke_ook het volgende:
Dat heb ik daarboven toch neer gezet?
als je al die dingen in 1 form zet, dan komen al die waardes in je _POST array terecht...
En dan kun je toch controleren of die checkbox aangevinkt is en dan de tekst meesturen?
Als je er echt "\n\r" had staan dan was dat fout. "\r\n" zou wel moeten werken.quote:Op zaterdag 12 maart 2005 16:35 schreef ikke_ook het volgende:
Ik heb mijn mail functie ook aan de praat SuperR (en de rest die er over nadacht) Als je de header maakt met aan ieder eind van de regel \n ipv \n\r dan werkt hij wel....
1 2 3 4 5 6 7 8 9 10 11 12 | function makeRandomPassword() { $str = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; $i = 0; while ($i <= 7) { $num = rand(0,61); $tmp = substr($str, $num, 1); $pass .= $tmp; $i++; } return $pass; } |
Als je een formpje als deze hebt:quote:Op zaterdag 12 maart 2005 16:13 schreef gieling het volgende:
[..]
Ja maar los daarvan: zou het kunnen?
[..]
Ehh.. ik snap het niet helemaal, je bedoelt dus dat ik jou stukje code 2x moet doen 1x voor textbox en 1x keer voor de object_naam waar de bezoeker net vandaan kwam?
1 2 3 4 5 6 7 | <form action="formhandler.php" method="post"> <input type="radio" name="sel_titel" value="een"> Titel: <input type="text" name="titel1"><br/> <input type="radio" name="sel_titel" value="twee"> <input type="text" name="titel2" value="Naam van object waar je net vandaan komt"><br/> <input type="submit"> </form> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | <?php if(!empty($_POST)) { switch($_POST['sel_titel']) { case "een": $titel = $_POST['titel1']; break; case "twee": $titel = $_POST['titel2']; break; default: $titel = ""; break; } mail($to, $titel, $inhoud, $headers); } ?> |
Getest, de gezamelijk Fok URL parser doet het beterquote:Op zaterdag 12 maart 2005 09:53 schreef SuperRembo het volgende:
[..]
JajajaProbeer ze eens.
Input:
[ code verwijderd ]
Output:
[ code verwijderd ]
1 2 3 | $text = preg_replace("/([A-Za-z0-9._-]+@[-A-Za-z0-9]+(\.[-A-Za-z0-9]+)*)/i",'<a href="mailto:\1">\1</a>',$text); $text = preg_replace("/[^\[url=http:\/\/](www(\.[-A-Za-z0-9]+)+\.[A-Za-z]{2,4}(\/\~?[-A-Za-z0-9\.\/?%&=#] $text = preg_replace('/\[url=(.+)\](.+)\[\/url\]/', '<a href="\1" target="_new">\2</a>', $text ); |
Huhquote:Op zaterdag 12 maart 2005 21:14 schreef Swetsenegger het volgende:
[..]
Getest, de gezamelijk Fok URL parser doet het beter
Die regexps zijn te ingewikkeld (er zitten overbodige en onhandige constructies in).quote:[ code verwijderd ]
parst zo'n beetje alles, zelfs deze: www.nl.pwc.com/extweb/Bn/Taxnews.nsf/Public/WI06212 waar fok van over z'n nek gaat
De helft wordt niet goed geparsed en zodra ik een 'kale' url en een '[ url=' url in dezelfde tekst heb verneukt hij het compleet.quote:Op zaterdag 12 maart 2005 22:31 schreef SuperRembo het volgende:
[..]
HuhWat gaat er dan mis met mijn regexps?
Nee hoorquote:Die regexps zijn te ingewikkeld (er zitten overbodige en onhandige constructies in).
Ze halen spaties weg voor een link.
quote:En ik kan er geen link mee maken naar een .museum domein.
Nee....quote:En het gaat mis met 2 links op 1 regel.
Ja?quote:Op zaterdag 12 maart 2005 23:10 schreef SuperRembo het volgende:
Kijk en vergelijk
1e output is van mijn regexps, 2e output is van jouw regexps. Ik heb alleen voor de duidelijkheid de target="_new" weggehaald.
In m'n testformpje doet ie dat zonder problemen.quote:Op zaterdag 12 maart 2005 23:15 schreef Swetsenegger het volgende:
Ik heb graag een betere parser, en die van jou doet het erg goed, behalve dan die complete verneuking met die lange url, dat is echt killing
Dan was het denk ik de spatie.quote:Op zaterdag 12 maart 2005 23:20 schreef SuperRembo het volgende:
[..]
In m'n testformpje doet ie dat zonder problemen.
Een url zonder tag moet beginnen met www of http:// en en moet een spatie na staan.
Nee als er niets achter staat dan wordt ie helemaal niet geparst. Je kan er zelf ff een spatie achter plakken en achteraf trimmen. Zal er nog eens naar kijken.quote:Op zaterdag 12 maart 2005 23:24 schreef Swetsenegger het volgende:
[..]
Dan was het denk ik de spatie.
Wat gebeurt er dan als hij helemaal aan het eind van de string staat?
Het is toch zeker spatie OF einde string?
Is gewoon 'einde string' niet handiger? In tekst mag je er wel vanuitgaan dat er een spatie komt. Of een punt (welke hij mee parst zag ik, mits er na die punt een spatie komt)quote:Op zaterdag 12 maart 2005 23:27 schreef SuperRembo het volgende:
[..]
Nee als er niets achter staat dan wordt ie helemaal niet geparst. Je kan er zelf ff een spatie achter plakken en achteraf trimmen. Zal er nog eens naar kijken.
Ja die is naar.quote:
1 2 3 4 | '#(?<!\[url=)(https?://.*?)(?=\s|$)#i' => '<a href="\1">\1</a>', '#(?<!\[url=)(www\..*?)(?=\s|$)#i' => '<a href="http://\1">\1</a>', '#\[url=(https?://.*?)\](.*?)\[/url\]#i' => '<a href="\1">\2</a>', '#\[url=(.*?)\](.*?)\[/url\]#i' => '<a href="http://\1">\2</a>', |
een keer zonder http en een keer met zeker?quote:Op zaterdag 12 maart 2005 23:49 schreef SuperRembo het volgende:
Kut. Ik zie nu dat 't mis gaat met http://www.foo.com. Die wordt dubbel geparsed.
Ok, dus de spatie is gefixed (was eigenlijk alleen een porbleem bij einde string)quote:Op zondag 13 maart 2005 00:10 schreef SuperRembo het volgende:
Dat laatste heb ik gefixed http://superrembo.com/test/ubblink.php
Die punt komt later misschien nog een keer.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | $regexps = array( // http://foo.net => [url=http://foo.net]http://foo.net[/url] '#(?<!\[url=)(http://.*?)(?=\s|$)#i' => '[url=\1]\1[/url]', // www.foo.net => [url=www.foo.net]http://www.foo.net[/url] '#(?<!\[url=)(?<!http://)(www\..*?)(?=\s|$)#i' => '[url=http://\1]\1[/url]', // [url=http://foo.net]Foo[/url] => <a href="http://foo.net">Foo</a> '#\[url=(https?://.*?)\](.*?)\[/url\]#i' => '<a href="\1">\2</a>', // [url=foo.net]Foo[/url] => <a href="http://foo.net">Foo</a> '#\[url=(.*?)\](.*?)\[/url\]#i' => '<a href="http://\1">\2</a>', ); foreach ($regexps as $search=>$replace) { $text = preg_replace($search, $replace, $text); } |
-edit-quote:
Jee zegquote:
1 | '#(?<!\[url=)(http://.*?)(?=\s|$|"\.\s"|"\.$")#i' => '[url=\1]\1[/url]', |
quote:Op zondag 13 maart 2005 11:35 schreef SuperRembo het volgende:
[..]
Jee zegGeen syntax highlighting en meteen lost
Dit kan wel.quote:Op zondag 13 maart 2005 12:02 schreef Swetsenegger het volgende:
[ code verwijderd ]
Is dit 'm niet? (geen tijd om te testen)
1 2 3 4 5 6 7 8 9 10 11 12 13 | $regexps = array( // http://foo.net => [url=http://foo.net]http://foo.net[/url] '#(?<!\[url=)(http://.*?)(?=[.,?:;()<>]*(\s|$))#i' => '[url=\1]\1[/url]', // www.foo.net => [url=www.foo.net]http://www.foo.net[/url] '#(?<!\[url=)(?<!http://)(www\..*?)(?=[.,?:;()<>]*(\s|$))#i' => '[url=http://\1]\1[/url]', // [url=http://foo.net]Foo[/url] => <a href="http://foo.net">Foo</a> '#\[url=(https?://.*?)\](.*?)\[/url\]#i' => '<a href="\1">\2</a>', // [url=foo.net]Foo[/url] => <a href="http://foo.net">Foo</a> '#\[url=(.*?)\](.*?)\[/url\]#i' => '<a href="http://\1">\2</a>', ); |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | $regexps = array( // http://foo.net => [url=http://foo.net]http://foo.net[/url] \'#(?<!\\[url=)(http://.*?)(?=\\s|$|(\\.\\s)+|(\\.$)+)#i\' => \'[url=\\1]\\1[/url]\', // www.foo.net => [url=www.foo.net]http://www.foo.net[/url] \'#(?<!\\[url=)(?<!http://)(www\\..*?)(?=\\s|$|(\\.\\s)+|(\\.$)+)#i\' => \'[url=http://\\1]\\1[/url]\', // [url=http://foo.net]Foo[/url] => <a href=\"http://foo.net\">Foo</a> \'#\\[url=(https?://.*?)\\](.*?)\\[/url\\]#i\' => \'<a href=\"\\1\">\\2</a>\', // [url=foo.net]Foo[/url] => <a href=\"http://foo.net\">Foo</a> \'#\\[url=(.*?)\\](.*?)\\[/url\\]#i\' => \'<a href=\"http://\\1\">\\2</a>\', ); foreach ($regexps as $search=>$replace) { $text = preg_replace($search, $replace, $text); } |
1 | (?=\\\\s|$|(\\\\.\\\\s)+|(\\\\.$)+) |
1 | (?=[.]?(\\\\s|$)) |
1 | (?=[.,?:;()<>]*(\\\\s|$)) |
LOL, ja magic quotes moeten ze er direct uitslopen.quote:Op zondag 13 maart 2005 17:58 schreef SuperRembo het volgende:
O kut, die backslashes komen door een foute instelling van de server.Heeft breuls weer lopen kloten
Magic quotes zullen wel aan staan denk ik. Verschikkelijke klote feature van php/mysql.
1 2 3 4 5 6 7 8 9 10 | SELECT h.hits_timestamp, n.nummer_id, n.nummer_titel, a.artiest_id, a.artiest_naam, b.album_id, b.album_titel, u.user_id, u.user_name FROM hits h, nummer n, artiest a, album b, user u WHERE n.nummer_id = h.hits_nummer_id AND a.artiest_id = n.nummer_artiest_id AND b.album_id = n.nummer_album_id AND u.user_id = h.hits_user_id AND u.user_name LIKE '".$var['user_name']."' ORDER BY h.hits_id DESC LIMIT 0,25 |
1 2 3 4 5 6 7 | SELECT COUNT(a.artiest_id), a.artiest_id, a.artiest_naam, u.user_id, u.user_name FROM hits h, nummer n, artiest a, user u WHERE n.nummer_id = h.hits_nummer_id AND a.artiest_id = n.nummer_artiest_id AND u.user_id = h.hits_user_id AND u.user_name LIKE '".$var['user_name']."' GROUP BY u.user_id |
1 2 3 4 5 6 7 8 9 | SELECT COUNT(h.hits_nummer_id) AS artnum, a.artiest_id, a.artiest_naam, u.user_id FROM hits h, nummer n, artiest a, user u WHERE n.nummer_id = h.hits_nummer_id AND a.artiest_id = n.nummer_artiest_id AND u.user_id = h.hits_user_id AND u.user_id = '".$var['user_id']."' GROUP BY a.artiest_naam ORDER BY artnum DESC LIMIT 0, 25 |
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |