Problem mit preg_match

PhoenixDH

Erfahrenes Mitglied
Ich habe da ein Problem, ich will nachschaun on in dem Link ein http://ww. oder http://w. enthalten ist, damit ich ausgeben kann das die URL falsch ist !

Habe es mit
Code:
if (preg_match('http://ww.', $toplist['siteurl']))
{
}

versucht, aber es klappt nicht, wieso ?
 
mit ereg bzw eregi da Gross- kleinschreibung nicht beachtet wird

if (eregi('[http:\/\/www]', $toplist['siteurl']))

und 2tens Escapen nicht vergessen Gruss!

Hier mal ideall
PHP:
    $urlSA = array(
      "/([^]_a-z0-9-=\"'\/])((https?|ed2k|unreal|ftp|gopher|news|telnet):\/\/|www\.)([^ \r\n\(\)\*\^\$!`\"'\|\[\]\{\};<>]*)/si",
      "/^((https?|ed2k|unreal|ftp|gopher|news|telnet):\/\/|www\.)([^ \r\n\(\)\*\^\$!`\"'\|\[\]\{\};<>]*)/si"
    );

    $urlRA = array(
      "\\1[ url]\\2\\4[ /url]",
      "[ url]\\1\\3[ /url]"
    );

    $emailSA = array(
      "/([ \n\r\t])([_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*(\.[a-zA-Z]{2,4}))/si",
      "/^([_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*(\.[a-zA-Z]{2,4}))/si"
    );

    $emailRA = array(
      "\\1[ email]\\2[ /email]",
      "[ email]\\0[ /email]"
    );

  $text = preg_replace($urlSA, $urlRA, $post);
  if (strpos($text, "@")) {
    $text = preg_replace($emailSA, $emailRA, $text);
  }
 
Also bei der 1. Überprüfung der URL ging es, aber beim Überprüfen ob das www auch beim Banner dabei ist geht es irgendwie nicht, wieso ? müsste doch, hab nur die Variable geändert, hier der Code:
Code:
$toplist['sitebanner'] = preg_replace('/\s.+$/', '', $toplist['sitebanner']);

if (!phpLinkCheck($toplist['sitebanner']) || !eregi('[http:\/\/www]', $toplist['sitebanner']))
	{
	$err_msg .= "Sie haben einen ungültigen Banner angegeben !<br>";
	}
 
Die Syntax von preg_match() und ereg() ähnelt sich zwar, ist aber nicht identisch.
Eins ist aber bei beiden gleich...eckige Klammern werden zum Definieren einer Zeichenklasse verwendet.... wozu sie bei dir sein sollen, weiss ich nicht.

Lösungen:
Code:
!eregi('^http://www\.', $toplist['sitebanner']);

//oder

!preg_match('@^http://www\.@i', $toplist['sitebanner'])

Die "Hütchen" hab ich dazugetan...damit der Anfang des Strings untersucht wird.
Den Punkt.... weil sonst auch Adressen wie http://wwwasguckdu gefunden würden... was du wahrscheinlich nicht willst.
 
Zurück