Zum Inhalt springen

Monty82

Mitglieder
  • Gesamte Inhalte

    643
  • Benutzer seit

  • Letzter Besuch

  1. Monty82

    RegExp in Perl

    Hier fehlen die Slashes als erlaubte Zeichen in [a-z-]. if($var =~ /^(\d+)\#(\/[a-z-\/]*)$/ ){
  2. Ich hab mich mal dran versucht und würd's so machen: <?php $string = "<p>ARTICLE[id=4 format=html]</p>HEADER[id=1 format=html transform=upper]<div><p>ARTICLE[id=4 format=csv]</p></div><br><p>ARTICLE[id=5]</p>"; $arrRes = array(); if (preg_match_all('/([\w]+)\[([^\]]+)\]/s', $string, $arrPregRes) > 0) { foreach ($arrPregRes[1] as $key=>$val) { if (!array_key_exists($val, $arrRes)) { $arrRes[$val] = array(); } if (preg_match_all('/([^\s=]+)=([^\s]+)/s',$arrPregRes[2][$key], $arrInnerPregRes) > 0) { $arrTmp = array(); foreach ($arrInnerPregRes[1] as $iKey=>$iVal) { $arrTmp[$iVal] = $arrInnerPregRes[2][$iKey]; } $arrRes[$val][] = $arrTmp; } } } echo "<pre>"; print_r($arrRes); echo "</pre>"; ?> [/PHP]
  3. Welchen Datentyp hat denn die Variable i? Ansonsten würde ich noch vermuten, dass ASP ggf. einen Punkt als Dezimaltrennzeichen erwartet.
  4. if ($line =~ m/^\Q$input\E/){...} Das \Q sorgt dafür, das alle nachfolgenden Zeichen, die in Perl bzw. im Regulären Ausdruck eine besondere Rolle spielen könnten, bis zum eventuellen Vorkommen von \E mit \ escaped werden.
  5. Nein. "i mod 1" ist nur bei Ganzzahlen 0. "i mod 2 = 0" würde man zur Erkennung von geraden Zahlen verwenden.
  6. Du könntest preg_replace_callback() benutzen: <?php function _replaceVar($_arrMatch) { $mixRes = ''; if (isset($GLOBALS[$_arrMatch[1]])) { $mixRes = $GLOBALS[$_arrMatch[1]]; } return $mixRes; } $strVarTest = 'test'; $intVarTest = 1; $strTest = 'Das ist ein Test mit den Werten {${strVarTest}} und {${intVarTest}}.'; echo $strTest."<hr>"; $strTest = preg_replace_callback('/\{\$\{([^\}]+)\}\}/','_replaceVar',$strTest); echo $strTest; ?> [/PHP] Edit: Ich habe mir gerade mal den e-Modifier angeschaut. Es geht auch so einfacher: [PHP] $strTest = preg_replace('/\{\$\{([^\}]+)\}\}/e','\$GLOBALS[\\1]',$strTest); Ich vermute, Du müsstest in Deinem Beispiel das Dollar-Zeichen escapen und für die Back-Referenz zwei Escape-Zeichen verwenden.
  7. Alternativ kann man der Funktion preg_quote() auch als zweiten Parameter den Begrenzer übergeben, der dann automatisch mit maskiert wird.
  8. Monty82

    cronjobs

    - Virenscanner-Updates - Spamassassin Rules-Updates - Mailfetcher - MRTG - Spamassassin Autolearner (HAM/SPAM Klassifizierung anhand eines bestimmten IMAP-Ordners) - Update der Distributions-Paket-Listen - Logrotate - Zeit-Synchronisation - AwStats - DynDns
  9. Oder das von der dafür vorgesehenen Funktion erledigen lassen: $sql="SELECT produkt FROM software WHERE produkt='".mysql_escape_string($produkt)."'";
  10. Wie sieht denn Dein bisheriger regulärer Ausdruck aus?
  11. Da das nativ von Outlook nicht unterstützt wird, brauchst Du dafür einen zusätzlichen Connector wie GeniusConnect.
  12. Mit PHP ist das definitiv nicht möglich, da das Script erst geparst wird, wenn der Datei-Upload fertig ist. Ich hab's damals so gelöst, dass ich den Datei-Upload mit Perl realisiert habe und beim Aufruf des Perl-Scripts die aktuelle PHP-Session-ID mit übergeben habe. So konnte ich den Upload-Status durch das Perlscript regelmäßig in eine temporäre Session-abhängige Datei schreiben lassen, und mittels PHP/Ajax auslesen.
  13. Wo wir hier gerade bei Tipps sind: Gebe niemals Benutzereingaben ungefiltert an die Datenbank weiter! SQL-Injection "[...] ='".mysql_real_escape_string($_POST['tag'])."' [...]" Zusätzlich sollte man vorher noch die Gültigkeit der Eingabe überprüfen.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...