Autor Zpráva
Cup
Profil
Jak prosím převádíte odkazy v textu -> řetězce začnající www(tečka) (něco) (tečka) (něco) na odkazy <a href=".....
MCKAY
Profil
Cup:
Nejspíš by to šlo pomocí tohoto návodu, ale ten převádí jen verzi začínající na http://, takže by jsi si s tim musel ještě trochu vyhrát a na začátek regulárnímu výrazu říct, že chceš, aby to začínalo na http:// nebo www :-)
Cup
Profil
ok skusím dík
Cup
Profil
Prosím, sem z toho jelen, podívejte se, proč mi to píše notice?
 $nahrad = "(http:\/\/[_a-zA-Z0-9\.\-]+\.[a-zA-Z]{2,4}\/{0,1}[-_~,#&=\?\.a-zA-Z0-9\/]*)";
 preg_match_all("!$nahrad!", $text, $adress);

 $count=count($adress[0]);

   for ($i=0; $i<=$count; $i++){

    if(strlen($adress[0][$i])>$pocet){
     $odkazik = substr($adress[0][$i], 0, $pocet-3)."...";
    }else{
     $odkazik = $adress[0][$i];
    }

    //zde se urcuje jak bude odkaz vypadat muzes si tam pridat treba: class=odkaz nebo target="_blank"
    $odkaz = '<a href="'.$adress[0][$i].'" title="'.$adress[0][$i].'" >'.$odkazik.'</a>';
    $text = str_replace($adress[0][$i], $odkaz, $text);
    }

    return $text;

píše to na řádcích

tady if(strlen($adress[0][$i])>$pocet){
$odkazik = substr($adress[0][$i], 0, $pocet-3)."...";
}else{
tady $odkazik = $adress[0][$i];
}

//zde se urcuje jak bude odkaz vypadat muzes si tam pridat treba: class=odkaz nebo target="_blank"
tady dva $odkaz = '<a href="'.$adress[0][$i].'" title="'.$adress[0][$i].'" >'.$odkazik.'</a>';
tady $text = str_replace($adress[0][$i], $odkaz, $text);
}


pochopil jsem z toho že to je $i, ale vždyť $i je nadefinované... co tam nevidím?
Cup
Profil
vyřešila to podmínka v cyklu, že když položka v poli není definována tak to nebudem řešit .. tady píšu pro ty co by to zajímalo

function prevedOdkazy($text, $pocet){
 $nahrad = "(http:\/\/[_a-zA-Z0-9\.\-]+\.[a-zA-Z]{2,4}\/{0,1}[-_~,#&=\?\.a-zA-Z0-9\/]*)";
 preg_match_all("!$nahrad!", $text, $adress);

 $count=count($adress[0]);
   for ($i=0; $i<=$count; $i++){
    if(isset($adress[0][$i]))
     {
       if(strlen($adress[0][$i])>$pocet){
        $odkazik = substr($adress[0][$i], 0, $pocet-3)."...";
       }else{
        $odkazik = $adress[0][$i];
       }

       //zde se urcuje jak bude odkaz vypadat muzes si tam pridat treba: class=odkaz nebo target="_blank"
       $odkaz = '<a href="http://'.$adress[0][$i].'" title="'.$adress[0][$i].'" >'.$odkazik.'</a>';
       $text = str_replace($adress[0][$i], $odkaz, $text);
     }
    }

    return $text;
}

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: