Antworten auf deine Fragen:
Neues Thema erstellen

PHP / String nach bestimmte Wörter durchsuchen mit Array

Indium1

Nicht mehr ganz neu hier

Hallo an alle Leser,

ich möchte gerne einen String mit einem zweidimensionalen Array durchsuchen:

PHP:
function _make_url_clickable($matches) 
{
    $ret = '';
    $url = $matches[2];
    $linkname = $matches[2];
    
    $protokoll = array();
    $protokoll[0]["protokoll"] = 'http://';
    $protokoll[0]["length"] = 7;
    $protokoll[1]["protokoll"] = 'https://';
    $protokoll[1]["length"] = 8;
    $protokoll[2]["protokoll"] = 'ftp://';
    $protokoll[2]["length"] = 6;
    
    foreach ($protokoll as $protokoll) 
    {
         if (substr($url,0,$protokoll["length"]) == $protokoll["protokoll"]) 
         {
               //echo 'Protokoll am Anfang des Strings gefunden';
               return $matches[1] . "<a href=\"$url\" rel=\"nofollow\" target=\"_blank\">$linkname</a>" . $ret;
         }
         else
         {
               //echo 'Kein Protokoll am Anfang des Strings gefunden';
               $ergebnis = $url;
               return $ergebnis;
          }
     }
}
Alle http:// werden gefunden, https:// und ftp:// jedoch nicht, obwohl diese bei 0 beginnen.
Irgendetwas scheint also noch im Script zu fehlen, ich weiß aber nicht was.

Auf die altmodische Methode mit ODER Befehl ohne Array funktioniert es:

PHP:
if (substr($url,0,7) == 'http://' || substr($url,0,8) == 'https://' || substr($url,0,6) == 'ftp://')
{
   //echo 'Protokoll am Anfang des Strings gefunden';
}
else
{
    //echo 'Kein Protokoll am Anfang des Strings gefunden';
}
Mir wäre es allerdings lieber das mit einem Array zu prüfen.

Ich hoffe Ihr könnt mir ein wenig auf die Sprünge helfen.

Vielen Dank im Voraus,

Indium1
 

rilight

Noch nicht viel geschrieben

AW: PHP / String nach bestimmte Wörter durchsuchen mit Array

Hey,

wenn ich das Problem richtig verstehe, dann willst du wissen, ob in einem String ein Protokoll enthalten ist?!
Ich hab mal schnell was zusammengeschrieben, vill. hilft dir das bei deinem Problem.
Wenn noch nicht alle Aspekte enthalten sind, kannst du sie ja noch hinzufügen.

PHP:
<?php

function finde_protokoll($string)
{
    # Protokolle
    # … oder was sonst noch rein soll
    $protokoll = array();
    $protokoll[] = array('Protokoll' => 'http://', 'Laenge' => 7);
    $protokoll[] = array('Protokoll' => 'https://', 'Laenge' => 8);
    $protokoll[] = array('Protokoll' => 'ftp://', 'Laenge' => 6);
    
    # den String auf Protokolle überprüfen
    $treffer = '';
    for($i = 0; $i < count($protokoll); ++$i)
    {
        # vorhanden
        if(strpos($string, $protokoll[$i]['Protokoll']))
        {
            $treffer = $protokoll[$i]['Protokoll'];
            break;
        }
    }
    
    # Rückgabe
    if($treffer == '')
    {
        # nicht gefunden
        return false;
    }
    else
    {
        # Protokoll gefunden
        return $treffer;
    }
}

?>
rilight
 

Duddle

Posting-Frequenz: 14µHz

AW: PHP / String nach bestimmte Wörter durchsuchen mit Array

Erstens:
PHP:
    foreach ($protokoll as $protokoll)
Hier überschreibst du im ersten Schleifendurchgang $protokoll. Die Variable zeigt dann nicht mehr auf das Array, sondern ein Element davon. Dementsprechend bricht die Schleife ab.

Zweitens: wie schon vorher erwähnt hat PHP strlen(), dein manuell eingetragener Länge-Parameter ist also vollkommen überflüssig.


Duddle
 

Indium1

Nicht mehr ganz neu hier

AW: PHP / String nach bestimmte Wörter durchsuchen mit Array

Hallo rilight,
hallo Duddle,

hatte bis jetzt noch keine Zeit gehabt auszutesten.

Demnach erst einmal vielen Dank an euch für die Hilfe!

Viele Grüße,

Indium1
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Neueste Themen & Antworten

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.565
Beiträge
1.538.067
Mitglieder
67.488
Neuestes Mitglied
Andrew56524
Oben