Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 12

Thema: preg_replace_callback problem

  1. #1
    Fortgeschrittene/r Avatar von SpeedFire
    Registriert seit
    01.07.2008
    Ort
    Meilsdorf
    Alter
    23
    Beiträge
    185
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard preg_replace_callback problem

    ich glab das ich einfach zu dumm bin
    ich habe ein preg_replace_callback den ich mit 2 arrays zum suchen fütter.
    Eins zum suchen und eins als ersatz.
    Leider kommt immer folgende Meldung dabei raus:
    Code:
    Warning:  preg_replace_callback() [function.preg-replace-callback]: Requires argument 2, 'bbc_youtube::bbc_link', to be a valid callback in /users/sett/www/functions/bbc.php on line 46
    PHP-Code:
    <?php
    $GLOBALS
    ['bbc_count'] = 0;
    function 
    bbc_youtube($par)
    {
      
    $GLOBALS['bbc_count']++;
      
    $r '<div class="youtube">
      <div id="yq'
    .$GLOBALS['bbc_count'].'">
        <a href="javascript: youtube(0,'
    .$GLOBALS['bbc_count'].',\''.$par[2].'\')" class="ilink">Nidrige Qualität</a>';
      switch(
    $par[1])
      {
      case 
    '=1':
        
    $r.= '
        <a href="javascript: youtube(1,'
    .$GLOBALS['bbc_count'].',\''.$par[2].'\')">Hohe Qualität</a>';
        break;
      case 
    '=2':
        
    $r.= '
        <a href="javascript: youtube(1,'
    .$GLOBALS['bbc_count'].',\''.$par[2].'\')">Hohe Qualität</a>
        <a href="javascript: youtube(2,'
    .$GLOBALS['bbc_count'].',\''.$par[2].'\')">High Definition</a>';
        break;
      }
      
    $r.= '
      </div>
      <object type="application/x-shockwave-flash" id="yt'
    .$GLOBALS['bbc_count'].'"
       data="http://www.youtube.com/v/'
    .$par[2].'&amp;hl=de&amp;fs=1&amp;rel=0&amp;color1=0x39558d&amp;color2=0xbababa">
        <param name="movie" value="http://www.youtube.com/v/'
    .$par[2].'&amp;hl=de&amp;fs=1&amp;rel=0&amp;color1=0x39558d&amp;color2=0xbababa" />
        <param name="allowScriptAccess" value="always" /><br />
        <param name="allowFullScreen" value="true" />
      </object>
    </div>'
    ;
      return 
    $r;
    }
    function 
    bbc_link($par)
    {
      
    $par $par[0];
      if(
    strlen($par) > 40)$r substr($par,0,20).'[..]'.substr($par,-20);
      else                 
    $r $par;
      return 
    '<a href="'.$par.'" title="'.$par.'">'.$r.'</a>';
    }
    $GLOBALS['bbc_c_suche'] = array('/\[youtube(\=[0-2]+|.{0})\](.{11})\[\/youtube\]/','/(http|https):\/\/([^ ]{5,})/');
    $GLOBALS['bbc_c_ersatz']= array('bbcyt','bbclink');
    function 
    bbc($text)
    {
      
    $text preg_replace_callback($GLOBALS['bbc_c_suche'],$GLOBALS['bbc_c_ersatz'],$text);
      return 
    $text;
    }
    echo 
    bbc('[youtube=2]jyDrc5qBaRs[/youtube]');
    error_reporting(E_STRICT|E_ALL); hab ich schon gemacht
    Achtung: Dies ist ein alter Thread im HTML und Webmaster Forum
    Diese Diskussion ist älter als 90 Tage. Die darin enthaltenen Informationen sind möglicherweise nicht mehr aktuell. Erstelle bitte zu deiner Frage ein neues Thema im Forum !!!!!
    br:^ n4:| ie:% mo:} va:} de:> zu:) fl:| ss:} ls:[ js:|
    Dieser Text ist nicht sinnlos, sondern sagt viel über mich aus!

  2. #2
    Forum Guru Avatar von The User
    Registriert seit
    28.10.2007
    Ort
    Zwischen Pazifik und Atlantik...
    Beiträge
    4.044
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: preg_replace_callback problem

    Schau dir mal an, was preg_replace macht:
    Parameter zwei muss ein Verweis auf eine Funktion sein, die wird aufgerufen und deren Rückgabewert als Ersetzung verwendet. Du solltest einfach preg_replace für einfache Ersetzung verwenden.

    Viele liebe Grüße
    The User

  3. #3
    Fortgeschrittene/r
    Themenstarter
    Avatar von SpeedFire
    Registriert seit
    01.07.2008
    Ort
    Meilsdorf
    Alter
    23
    Beiträge
    185
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: preg_replace_callback problem

    preg_replace_callback ruft eine Funktion nach seinen namen auf. Dies kann aber auch ein Array sein.
    In diesem Fall müssen beide Arrays (suche und Ersatz) die selbe Größe haben.
    http://de2.php.net/manual/de/functio...e-callback.php

    Also müsste es so eigentlich funktionieren.
    br:^ n4:| ie:% mo:} va:} de:> zu:) fl:| ss:} ls:[ js:|
    Dieser Text ist nicht sinnlos, sondern sagt viel über mich aus!

  4. #4
    Forum Guru Avatar von The User
    Registriert seit
    28.10.2007
    Ort
    Zwischen Pazifik und Atlantik...
    Beiträge
    4.044
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: preg_replace_callback problem

    Das müssen im Array aber dennoch richtige Funktionsnamen sein.
    Du hast geschrieben:
    PHP-Code:
    array('bbcyt','bbclink'
    Deine Funktionen heißen aber 'bbc_link' und 'bbc_youtube'. Also:
    PHP-Code:
    array('bbc_youtube','bbc_link'
    Viele liebe Grüße
    The User

  5. #5
    Fortgeschrittene/r
    Themenstarter
    Avatar von SpeedFire
    Registriert seit
    01.07.2008
    Ort
    Meilsdorf
    Alter
    23
    Beiträge
    185
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: preg_replace_callback problem

    sorry ich hab es aus meinem Editor kopiert und dann so umbennant, das es leicht verständlich ist.
    Aber in meinem richtigen Code sollte es funktionieren.
    wenn ich es ohne Array machen gehts auch
    br:^ n4:| ie:% mo:} va:} de:> zu:) fl:| ss:} ls:[ js:|
    Dieser Text ist nicht sinnlos, sondern sagt viel über mich aus!

  6. #6
    Forum Guru Avatar von The User
    Registriert seit
    28.10.2007
    Ort
    Zwischen Pazifik und Atlantik...
    Beiträge
    4.044
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: preg_replace_callback problem

    Ah Moment.
    Der zweite Parameter kann bei preg_replace_callback kein array sein.
    Er hat so eine seltsame Fehlermeldung, weil Callbacks auch Arrays sein können.
    Du musst also in zwei Aufrufen das erledigen.

  7. #7
    Fortgeschrittene/r
    Themenstarter
    Avatar von SpeedFire
    Registriert seit
    01.07.2008
    Ort
    Meilsdorf
    Alter
    23
    Beiträge
    185
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: preg_replace_callback problem

    was fürn s*****
    ich löse das jetzt einfach mit 2 preg_replace.

    mfg SpeedFire
    br:^ n4:| ie:% mo:} va:} de:> zu:) fl:| ss:} ls:[ js:|
    Dieser Text ist nicht sinnlos, sondern sagt viel über mich aus!

  8. #8
    Forum Guru Avatar von The User
    Registriert seit
    28.10.2007
    Ort
    Zwischen Pazifik und Atlantik...
    Beiträge
    4.044
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: preg_replace_callback problem

    Überleg dir mal, ob du das wirklich brauchst.
    Das macht es extrem langsam, wenn der für jeden BBCode alles durchlaufen muss.
    Es ist garnicht so schwer ohne preg zu coden, man muss allerdings etwas mehr überlegen.
    Leider gibt es unter PHP (so weit ich weiß) kein Tool wie (f)lex oder yacc.

  9. #9
    Fortgeschrittene/r
    Themenstarter
    Avatar von SpeedFire
    Registriert seit
    01.07.2008
    Ort
    Meilsdorf
    Alter
    23
    Beiträge
    185
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: preg_replace_callback problem

    und wie soll ich das machen?
    soll ich ein str_split auf die Zeichenkette loslassen
    und es dann mit foreach alle Zeichen vergleichen?
    br:^ n4:| ie:% mo:} va:} de:> zu:) fl:| ss:} ls:[ js:|
    Dieser Text ist nicht sinnlos, sondern sagt viel über mich aus!

  10. #10
    Forum Guru Avatar von The User
    Registriert seit
    28.10.2007
    Ort
    Zwischen Pazifik und Atlantik...
    Beiträge
    4.044
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: preg_replace_callback problem

    Bei zwei pregs muss man ja nicht knausern.
    Ansonsten:
    http://de.wikipedia.org/wiki/Kellerautomat
    Habe leider kein Beispiel für PHP gefunden.
    Vielleicht:
    http://www.phpclasses.org/browse/file/4452.html
    Geändert von The User (12.01.2009 um 22:01 Uhr)

Ähnliche Themen

  1. preg_replace_callback zickt
    Von The User im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 1
    Letzter Beitrag: 10.06.2008, 18:50
  2. preg_replace_callback
    Von Paulaner im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 2
    Letzter Beitrag: 24.08.2005, 23:29
  3. preg_replace_callback
    Von Joogie im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 0
    Letzter Beitrag: 14.03.2004, 11:06

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •