Dat idee heb ik ook. Ik heb met die class nooit dat een mail in de spam-box in gmail OF ongewenste mail (hotmail) komt.quote:Op woensdag 17 september 2008 14:17 schreef mcDavid het volgende:
[..]
Ik krijg een beetje het idee dat je server geregistreerd staat als spamserver. Dit heeft weinig met PHP te maken, het mailtje wordt gewoon verzonden, het wordt er alleen door de andere e-mail dienst uitgefilterd.
Hou wel rekening met het limiet dat gmail aanhoud. met bedrukking tot het aantal mails per uur/dag en aantal adressen (TO)quote:Op woensdag 17 september 2008 14:20 schreef Doc.Brown het volgende:
[..]
Dan maar proberen met een externe SMTP server te verbinden, bijvoorbeeld Gmail.
Ow.. wat voor limiet moet ik dan aan denken?quote:Op woensdag 17 september 2008 14:37 schreef Tiemie het volgende:
[..]
Dat idee heb ik ook. Ik heb met die class nooit dat een mail in de spam-box in gmail OF ongewenste mail (hotmail) komt.
[..]
Hou wel rekening met het limiet dat gmail aanhoud. met bedrukking tot het aantal mails per uur/dag en aantal adressen (TO)
Het gaat om een soort inschrijvingsscriptje en diegene die inschrijft krijgt een mailtje en ik krijg een mailtje. Dus per inschrijving worden 2 mailtjes verstuurd. Hoe vaak per dag wisselt eigenlijk. Maar geen 100+ per 24 uur.quote:In een poging spam en misbruik te bestrijden, schakelt Google je account tijdelijk uit als je een bericht verzendt aan meer dan 500 ontvangers, of als je een groot aantal berichten verzendt die niet bezorgd kunnen worden. Als je een POP- of IMAP-client gebruikt (Microsoft Outlook of Apple Mail, e.g.), kun je slechts een bericht verzenden aan 100 mensen tegelijk. Je account wordt binnen 24 uur weer ingeschakeld.
Dat zou dan goed moeten gaan, zolang je maar niet mailtjes naar 100 of meer mensen tegelijk gaat sturen...quote:Op woensdag 17 september 2008 @ 14:53 schreef Doc.Brown het volgende:
[..]
Ow.. wat voor limiet moet ik dan aan denken?
Edit: is dat dit limiet?
[..]
Het gaat om een soort inschrijvingsscriptje en diegene die inschrijft krijgt een mailtje en ik krijg een mailtje. Dus per inschrijving worden 2 mailtjes verstuurd. Hoe vaak per dag wisselt eigenlijk.
Gelukkigquote:Op woensdag 17 september 2008 15:13 schreef mcDavid het volgende:
[..]
Dat zou dan goed moeten gaan, zolang je maar niet mailtjes naar 100 of meer mensen tegelijk gaat sturen...
Just to be shure zou je een nieuwe gmail account aan kunnen maken, en die koppelen aan je eigen account.
Ohja en pas op dat je je script goed beveiligd.. het zou zonde zijn als je straks geblokkeerd bent doordat één of andere spambot je mailform gevonden heeft.
alle client-side scripts e.d. kunnen aangepast worden. Dus het is altijd zaak dat je alle variabelen die je met PHP ophaalt d.m.v. $_GET, $_POST of $_REQUEST checkt of ze geen schadelijke stukjes php-code (of in dit geval e-mail header info) o.i.d. bevatten.quote:Op woensdag 17 september 2008 @ 15:54 schreef Doc.Brown het volgende:
[..]
Gelukkig![]()
Hmja beveiligen, het is niet zo zeer een mailform maar een onderdeel van een script. Heb dus een inschrijfformulier waar men hun NAW gegevens etc. kunnen invullen. Na submit wordt het weggeschreven en een standaard mailtje met enkele variabelen verstuurd naar diegene die ingeschreven heeft. Zelf ontvang ik dan ook nog een standaard mailtje.
Dus het zal wel meevallen vermoed ik met spambots?
Ik had niet zoveel tijd, maar deze is nog iets mooier omdat indention behouden blijft.quote:Op woensdag 17 september 2008 12:30 schreef slakkie het volgende:
[..]
Ware het niet dat die eerste methode niet werkte in alle gevallen en de huidige methode wel. Plus dat deze methode factor 3 sneller is..
1 2 3 | $output = preg_replace("/([^>]+)\\n([^<]+)/", "$1 $2", $output); ?> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | $output = "<tr> <td>korte tekst</td> <td>Heel erg lange text </td> <td>hello </td> </tr> <tr>"; function parse_output1($output) { $output = preg_replace("/([^>]+)\n(^<]+)/", "$1 $2", $output); return preg_replace("/(\S+) {2,}/", "$1 ", $output) . "\n"; } function parse_output2($output) { $output = str_replace("\n", " ", $output); $output = preg_replace("/(>)\s+(<)/", "$1\n$2", $output); return preg_replace("/ {2,}/", " ", $output) . "\n"; } print parse_output1($output) . "\n"; print parse_output2($output) . "\n"; ?> |
1 2 3 4 5 6 7 8 9 10 11 | <td>korte tekst</td> <td>Heel erg lange text </td> <td>hello </td> </tr> <tr> <tr> <td>korte tekst</td> <td>Heel erg lange text </td> <td>hello </td> </tr> <tr> |
Dankje voor je hulpquote:Op woensdag 17 september 2008 16:48 schreef mcDavid het volgende:
[..]
alle client-side scripts e.d. kunnen aangepast worden. Dus het is altijd zaak dat je alle variabelen die je met PHP ophaalt d.m.v. $_GET, $_POST of $_REQUEST checkt of ze geen schadelijke stukjes php-code (of in dit geval e-mail header info) o.i.d. bevatten.
http://nl.php.net/manual/en/intro.filter.php FILTER_SANITIZE_EMAIL is een handige in deze.
Kleine moeite om te zorgen dat regels die op een tag eindigen niet meegenomen mogen wordenquote:Op woensdag 17 september 2008 18:04 schreef slakkie het volgende:
je behoudt indentation, maar je breekt andere dingen:
[ code verwijderd ]
[ code verwijderd ]
1 2 3 | How is your world today? |
1 2 3 4 | <td>Hello _world_</td> <td>Hello world</td> </tr> |
1 2 3 4 5 6 7 8 9 10 | $str = '<tr> <td>Hello _world_</td> <td>Hello world</td>world world </tr>'; $str = preg_replace('/([^_])world([^_])/', '$1hoi!$2', $str); echo $str ?> |
1 2 3 4 5 | <td>Hello _world_</td> <td>Hello hoi!</td>hoi! hoi! </tr> |
http://nl.php.net/manual/en/intro.filter.phpquote:Op donderdag 18 september 2008 @ 12:51 schreef Chandler het volgende:
Ik ben dus al aardig op de goede wegen hoe is het mogelijk om alle karakters te blokken behalve tekstuele tekens??
1 |
1 2 3 4 5 6 7 8 9 10 11 | \n linefeed (LF or 0x0A [img]http://forum.fok.nl/templates/foksilver/i/p/10.gif[/img] in ASCII) \r carriage return (CR or 0x0D [img]http://forum.fok.nl/templates/foksilver/i/p/13.gif[/img] in ASCII) \t horizontal tab (HT or 0x09 (9) in ASCII) \v vertical tab (VT or 0x0B [img]http://forum.fok.nl/templates/foksilver/i/p/11.gif[/img] in ASCII) (since PHP 5.2.5) \f form feed (FF or 0x0C [img]http://forum.fok.nl/templates/foksilver/i/p/12.gif[/img] in ASCII) (since PHP 5.2.5) \\ backslash \$ dollar sign \" double-quote \[0-7]{1,3} the sequence of characters matching the regular expression is a character in octal notation \x[0-9A-Fa-f]{1,2} the sequence of characters matching the regular expression is a character in hexadecimal notation |
Of bijvoorbeeldquote:Op donderdag 18 september 2008 13:10 schreef Chandler het volgende:
Ik doelde op alle karakters behalve de tekstuele en nummerieke.
Hmm, nu kom ik achter een slash in de tekst niet mogelijk is :D ik dacht dit te verhelpen door er een \ voor te zetten maar dat werkt niet? anyone?
1/2Procent
[ code verwijderd ]
Bij welke karakters moet escapen? of hoe?
1 |
In principe "moet" je een regexp binnen /'es plaatsen: /regexp/, maar je mag het ook binnen # plaatsen, mits je dezelfde characters gebruikt. Als je bijv. een regexp met #regexp# klopt hoef je de / niet te escapen, dus ipv: /\/var\/log\/bla/ kan je dan #/var/log/bla# gebruiken. Zie http://perldoc.perl.org/perlretut.html (onder part 1 basic). Ik heb het zo 123 niet kunnen vinden in de PHP documentatie.quote:Op donderdag 18 september 2008 21:56 schreef Chandler het volgende:
huh? heb je ook een beschrijving van de #?
In PHP mag je in principe alles gebruiken, behalve de backslash (\) en alfanumerieke tekens. Zie ook http://nl.php.net/manual/en/intro.pcre.phpquote:Op donderdag 18 september 2008 22:19 schreef slakkie het volgende:
[..]
In principe "moet" je een regexp binnen /'es plaatsen: /regexp/, maar je mag het ook binnen # plaatsen, mits je dezelfde characters gebruikt. Als je bijv. een regexp met #regexp# klopt hoef je de / niet te escapen, dus ipv: /\/var\/log\/bla/ kan je dan #/var/log/bla# gebruiken. Zie http://perldoc.perl.org/perlretut.html (onder part 1 basic). Ik heb het zo 123 niet kunnen vinden in de PHP documentatie.
Dat staat gewoon in de introductie :Pquote:Op donderdag 18 september 2008 22:19 schreef slakkie het volgende:
Ik heb het zo 123 niet kunnen vinden in de PHP documentatie.
quote:The expression must be enclosed in the delimiters, a forward slash (/), for example. Any character can be used for delimiter as long as it's not alphanumeric or backslash (\)
1 |
1 |
Daar heb ik niet gekeken, zat hier te gluren: http://nl2.php.net/manual/en/reference.pcre.pattern.syntax.phpquote:Op donderdag 18 september 2008 22:45 schreef SuperRembo het volgende:
Dat staat gewoon in de introductie
niet dat het in de verste verte maar iets met PHP of MySQL te maken heeft, maar als je alle declaraties voor een psuedo-class ook aan de gewone class meegeeft, zal er weinig veranderen inderdaad.quote:Op vrijdag 19 september 2008 @ 03:22 schreef Cracka-ass het volgende:
Kan iemand mij vertellen waarom mijn button 'active' blijft? Hij blijft altijd ingedrukt zodra ie eenmaal is aangeklikt:
[ code verwijderd ]
Ok, thanks.quote:Op vrijdag 19 september 2008 06:42 schreef slakkie het volgende:
Oftewel, stel je css vragen hier: [CSS] voor dummies - deel 9
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | for ($x = 0; $x < $items; $x++) { $list = mysql_fetch_object($query); $searchFor[] = '#([^_])' . $list->zoek . '([^_])#'; $searchFor[] = '#([^_])' . ucFirst(strtolower($list->zoek)) . '([^_])#'; $searchFor[] = '#([^_])' . strtolower($list->zoek) . '([^_])#'; $replace[] = '$1' . $list->vervang . '$2'; $replace[] = '$1' . $list->vervang . '$2'; $replace[] = '$1' . $list->vervang . '$2'; $text = preg_replace($searchFor, $replace, $text); } ?> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | for ($x = 0; $x < $items; $x++) { $list = mysql_fetch_object($query); $searchFor[] = '#([^_])' . $list->zoek . '([^_])#'; $searchFor[] = '#([^_])' . ucFirst(strtolower($list->zoek)) . '([^_])#'; $searchFor[] = '#([^_])' . strtolower($list->zoek) . '([^_])#'; $replace[] = '$1' . $list->vervang . '$2'; $replace[] = '$1' . $list->vervang . '$2'; $replace[] = '$1' . $list->vervang . '$2'; } $text = preg_replace($searchFor, $replace, $text); ?> |
Je kunt kijken of case insensitve searches sneller zijn als drie losse. Verder kun je proberen je [^_]'s te vervangen door assertions ik kan me voorstellen dat met name die eerste sneller werkt als assertionquote:Op vrijdag 19 september 2008 11:03 schreef Chandler het volgende:
Mensen, ik heb een vraag over preg_replace, het is nogal een slome functieis er ook een manier om het sneller te maken? want ik moet namelijk ruim 600 queries doen met preg_replace en dit duurt echt eeuwen!
Ik heb 50% besparing weten te behalen
oude structuur
[ code verwijderd ]
nieuwe structuur:
[ code verwijderd ]
Maar volgens mij kan het nóg sneller!!!
quote:Assertions
An assertion is a test on the characters following or preceding the current matching point that does not actually consume any characters. The simple assertions coded as \b, \B, \A, \Z, \z, ^ and $ are described above. More complicated assertions are coded as subpatterns. There are two kinds: those that look ahead of the current position in the subject string, and those that look behind it.
An assertion subpattern is matched in the normal way, except that it does not cause the current matching position to be changed. Lookahead assertions start with (?= for positive assertions and (?! for negative assertions. For example, \w+(?=;) matches a word followed by a semicolon, but does not include the semicolon in the match, and foo(?!bar) matches any occurrence of "foo" that is not followed by "bar". Note that the apparently similar pattern (?!foo)bar does not find an occurrence of "bar" that is preceded by something other than "foo"; it finds any occurrence of "bar" whatsoever, because the assertion (?!foo) is always TRUE when the next three characters are "bar". A lookbehind assertion is needed to achieve this effect.
Lookbehind assertions start with (?<= for positive assertions and (?<! for negative assertions. For example, (?<!foo)bar does find an occurrence of "bar" that is not preceded by "foo". The contents of a lookbehind assertion are restricted such that all the strings it matches must have a fixed length. However, if there are several alternatives, they do not all have to have the same fixed length. Thus (?<=bullock|donkey) is permitted, but (?<!dogs?|cats?) causes an error at compile time. Branches that match different length strings are permitted only at the top level of a lookbehind assertion. This is an extension compared with Perl 5.005, which requires all branches to match the same length of string. An assertion such as (?<=ab(c|de)) is not permitted, because its single top-level branch can match two different lengths, but it is acceptable if rewritten to use two top-level branches: (?<=abc|abde) The implementation of lookbehind assertions is, for each alternative, to temporarily move the current position back by the fixed width and then try to match. If there are insufficient characters before the current position, the match is deemed to fail. Lookbehinds in conjunction with once-only subpatterns can be particularly useful for matching at the ends of strings; an example is given at the end of the section on once-only subpatterns.
Several assertions (of any sort) may occur in succession. For example, (?<=\d{3})(?<!999)foo matches "foo" preceded by three digits that are not "999". Notice that each of the assertions is applied independently at the same point in the subject string. First there is a check that the previous three characters are all digits, then there is a check that the same three characters are not "999". This pattern does not match "foo" preceded by six characters, the first of which are digits and the last three of which are not "999". For example, it doesn't match "123abcfoo". A pattern to do that is (?<=\d{3}...)(?<!999)foo
Het is natuurlijk ook geen handig syteem als elk woord mogelijk vervangen kan worden, behalve als er een underscore voor en achter staat. Kan je dat niet omdraaien? Dat zou vele malen sneller zijn.quote:Op vrijdag 19 september 2008 11:03 schreef Chandler het volgende:
Maar volgens mij kan het nóg sneller!!!
array_map("round",$Array);quote:Op dinsdag 23 september 2008 11:52 schreef Chandler het volgende:
Hoe kan ik simpel alle values in een array afronden? zonder foreach oid te gebruiken? ik heb al gekeken bij array_walk / array_map maar kan daar weinig uit wijs worden. Kan iemand mij vertellen welke functie te gebruiken is met verwijzing naar een voorbeeld oid?
http://www.php.net/manual/en/function.wordwrap.php hier staat een mooi voorbeeld daarvan. ik zoek nog even door voor die enter -> brquote:Op dinsdag 23 september 2008 @ 14:33 schreef Pizzahut het volgende:
wat ik dus zoek:
Ik ben bezig met een soort van nieuwssysteem/blog
Nu heb ik een tekst ingevoerd zoals ik nu gedaan heb. Nu wil ik dat er na zoveel woorden een <br> komt o.i.d. of dat als ik een enter invoer dat er ook daadwerkelijk een enter inkomt.
is dit mogelijk? Volgens mij moet ik iets met explode() doen als ik na een aantal woorden een br wil hebben, maar wat moet ik doen als ik automatisch een enter wil?
Ik denk dat je niet om die stof heen komt. In ieder geval, ik heb veel gehad aan het boek 'PHP5 : Objects, Patterns and Practices'quote:Op dinsdag 23 september 2008 20:23 schreef spaceninjapirate het volgende:
Ik ben al een tijdje met php bezig en wil me gaan verdiepen in het objectgeoriënteerd programeren in deze taal. Nu heb ik al wat gezocht op onze grote vriend google, maar de tutorials die ik daar vind zijn oud, incompleet of worden zo hard afgekraakt in de comments dat ik er niet eens 1 letter van wil gaan overtypen![]()
Nu vroeg ik me af of iemand hier nog een betere recource weet waar echt in de uitleg ook echt iets gebouwd word ipv de stof te bespreken. Als ik er echt iets mee kan bouwen begrijp ik het vaak stukken sneller!![]()
Iemand?
Het is een afweging die je moet maken. De ene oplossing (uit de database halen) voegt een bepaalde x tijd toe aan iedere handeling, terwijl de andere oplossing dit niet doet maar y meer schijfruimte gebruikt. Ik denk dat je in dit geval de gebruikersgegevens beter niet nog eens extra in een sessie moet gaan opslaan. Het is hergebruik van gegevens voor slechts een minimale tijdwinst.quote:Op woensdag 24 september 2008 21:33 schreef Likkende_Lassie het volgende:
Even een vraagje,
Ik doe het volgende altijd: Als een gebruiker inlogd, sla ik de gegevens als voornaam, achternaam, adres, gender etc op in een sessie. Als ik de gegevens nodig heb lees ik ze altijd uit de sessie dmv $_SESSION['gebruiker']['voornaam'].
Maar nu is het zo dat er extreem veel bezoekers gaan komen. Is het dan beter om de info uit de tabel van de database te halen (elke keer weer), of toch de sessie blijven gebruiken?
nee. eval() is sowiezo een slecht gebruik als je code optimaal wil gebruiken, ga je al je meuk voor je eval() uit een database halen ben je dubbel zo slecht bezig... Een klasse die modules bijhoudt en de benodigde php's zelf include() is vele malen efficienterquote:Op woensdag 24 september 2008 23:33 schreef Likkende_Lassie het volgende:
Ok, database dus!
Dan een ander vraagje, stop nu al mijn functies in 1 map op de webservers.
Ik zou eventueel ook de functies in een tabel kunnen zetten en ze vervolgens daar uit laden dmv Eval(), is dit een goed idee? Ik doe dit momenteel ook met al mijn php pagina's.
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |