login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Een if met (.*?) (Opgelost)

Offline tomie94 - 14/01/2008 15:29
Avatar van tomie94PHP interesse ik ben wat aan het proberen met een if ik heb nu dit:
  1. <?php
  2. if($msg == '!regels!(.*?)!') {
  3. $goodmsg = preg_replace("/!regels!(.*?)!/", "\\1, Lees de regels op ...", $msg);
  4. }
  5. else{
  6. $goodmsg = $msg;
  7. }
  8.  
  9. $out = $chattext . $n . "&nbsp;| " . $goodmsg . "<br>\n";
  10. $out = str_replace("\'", "'", $out);
  11. $out = str_replace("\\\"", "\"", $out);
  12.  
  13. $handle = fopen ($fn, 'w'); fwrite ($handle, $out); fclose($handle);
  14. ?>


maar natuurlijk werkt dit niet... is er een mogenlijkheid om dus tussen regels wat in te voeren wat je wilt?

12 antwoorden

Gesponsorde links
Offline marten - 14/01/2008 15:31
Avatar van marten Beheerder gebruik de functies

PHP.net: ereg
PHP.net: eregi

ook in je if structuur
Offline tomie94 - 14/01/2008 15:38
Avatar van tomie94 PHP interesse ik heb nu dit
  1. <?php
  2. if(ereg("!regels![a-zA-Z0-9]!", $msg, $regels) {
  3. $goodmsg = $regels[1].", lees de regels op...";
  4. }
  5. else{
  6. $goodmsg = $msg;
  7. }
  8.  
  9. $out = $chattext . $n . "&nbsp;| " . $goodmsg . "<br>\n";
  10. $out = str_replace("\'", "'", $out);
  11. $out = str_replace("\\\"", "\"", $out);
  12.  
  13. $handle = fopen ($fn, 'w'); fwrite ($handle, $out); fclose($handle);
  14. ?>


maar helaas werkt dit niet...
Offline marten - 14/01/2008 16:04
Avatar van marten Beheerder werkt niet zeg je al 2x

iets meer info is wel welkom wat werkt er niet, krijg je foutmelding? Wat wil je precies
Offline tomie94 - 14/01/2008 16:07 (laatste wijziging 14/01/2008 16:13)
Avatar van tomie94 PHP interesse ik krijg geen error. ik heb ook om de [a-zA-Z0-9] 2 haakjes gezet. maar dat helpt ook niet...

EDIT:

ik heb dus een chatbox gemaakt met AJAX en nu wil ik net als 'Snel Vragen' op sitemasters allemaal dingen die je in kan typen zoals !regels gebruikersnaam.
Offline TotempaaltJ - 14/01/2008 17:00
Avatar van TotempaaltJ PHP interesse Op regel 2 ($regels) {) mis je nog een haakje, je moet namelijk wel ereg afsluiten.

En btw: kan je niet beter PHP.net: eregi gebruiken? Dan kunnen ze dus ook !rEgElS schrijven... 
Offline Wim - 14/01/2008 17:23
Avatar van Wim Crew algemeen of PHP.net: preg_match???
Offline tomie94 - 14/01/2008 17:34
Avatar van tomie94 PHP interesse ik heb nu dit:

  1. <?php
  2. ereg("!regels!(^[a-z0-9]*$)!", $msg, $regels) {
  3. ?>


maar als ik !regels!sitemasters! intik krijg ik hetzelfde terug(!regels!sitemasters!)
Offline TotempaaltJ - 14/01/2008 17:55
Avatar van TotempaaltJ PHP interesse Lees mijn eerdere bericht!
Offline tomie94 - 14/01/2008 18:42 (laatste wijziging 14/01/2008 19:49)
Avatar van tomie94 PHP interesse oke ik gebruik het nu met eregi:
  1. <?php
  2. if(eregi("!regels!(^[a-z0-9]*$)!", $msg, $regels)) {
  3. $botnaam = 'Bot';
  4. $out = $chattext . $botnaam . "&nbsp;| Lees de regels op: ...<br>\n";
  5. $out = str_replace("\'", "'", $out);
  6. $out = str_replace("\\\"", "\"", $out);
  7.  
  8. $handle = fopen ($fn, 'w'); fwrite ($handle, $out); fclose($handle);
  9. }
  10. else{
  11. $out = $chattext . $n . "&nbsp;| " . $goodmsg . "<br>\n";
  12. $out = str_replace("\'", "'", $out);
  13. $out = str_replace("\\\"", "\"", $out);
  14.  
  15. $handle = fopen ($fn, 'w'); fwrite ($handle, $out); fclose($handle);
  16. }
  17. ?>


maar als ik nu tekst toevoeg krijg ik alleen de variabele $n te zien(die in de else) en niks in de if...

Edit:

Nu werkt de code weer, maar als ik !regels!naam! intik krijg ik alsnog gewoon !regels!naam! te zien 

  1. <?php
  2. if(preg_match("/!regels!(.*?)!/", $msg, $naam)) {
  3. $botnaam = 'Bot';
  4. $out = $chattext . $botnaam . "&nbsp;| ".$naam[1]."Lees de regels op: ...<br>\n";
  5. $out = str_replace("\'", "'", $out);
  6. $out = str_replace("\\\"", "\"", $out);
  7.  
  8. $handle = fopen ($fn, 'w'); fwrite ($handle, $out); fclose($handle);
  9. }
  10. else{
  11. $out = $chattext . $n . "&nbsp;| " . $msg . "<br>\n";
  12. $out = str_replace("\'", "'", $out);
  13. $out = str_replace("\\\"", "\"", $out);
  14.  
  15. $handle = fopen ($fn, 'w'); fwrite ($handle, $out); fclose($handle);
  16. }
  17. ?>
Offline ikkedikke - 14/01/2008 22:03
Avatar van ikkedikke PHP expert probeer die uitroeptekens eens te escapen
Offline BramBo - 14/01/2008 22:08 (laatste wijziging 14/01/2008 22:11)
Avatar van BramBo JS gevorderde Je hebt maar 1 Match group maar gebruikt de 2de match group. De laatste match group bevat het gehele subject.
Dus wanneer je een matching group hebt is group 1 de match ( (.*?) ) en group 2 de gehele input string.

Gebruik $naam[0]
Offline tomie94 - 15/01/2008 16:00
Avatar van tomie94 PHP interesse het is opgelost
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.239s