Nützliche Funktionen

hatschi1810

Angesehenes Mitglied
Wie wäre es, wenn hier Leute mal kleine selbstgemachte Funktionen Posten, die ihnen das Leben erleichtern?
Die Idee ist mir gerade nach einer kleinen Funktion gekommen.

Bsp.:
Funktion um einen String nach bestimmten Tags aufzusplitten. Die ist zwar für einen speziellen Fall zugeschnitten, aber es sollte nicht schwer sein die für etwas anzupassen. Die Links im Beispiel sind frei erfunden.

Die Performance könnte sicher erhöht werden, da ich aber das Ergebnis cache kann ich mit der Variante leben.

Code:
CODE
$text='<Link>http://www.orf.at?i=1||ORF<Link>'
      .'http://www.fm4.orf.at?u=a||FM4||info=test'
     .'<Link>http://www.fm4.orf.at||Text<Link>'
      .'http://www.fm4.orf.at||Text2';

/**
* @return string
* @param string, $text Linklist
* @desc teilt Linkliste am tag <Link>, ||Parameter ||Linkname
*/
function linklist_show($text){
$sText='';
$sExplode=explode('<Link>',$text);
if (count($sExplode)>1){

 for ($i=1;$i<count($sExplode);$i++){

  $aLink=explode('||',$sExplode[$i]);  
  //$aLink[0] Url
  //$aLink[1] Text
  //$aLink[1] Parameter
 
  $aUrl=explode('?',$aLink[0]);
  $sUrl=$aUrl[0];
  if ($aLink[2]!=''){
   $sUrl.='?'.$aLink[2];
   if ($aUrl[1]!=''){
     $sUrl.='&'.$aUrl[1];
   }
  }elseif ($aUrl[1]!=''){
   $sUrl.='?'.$aUrl[1];
  }
 
  $sReturn.='<a href="'.$sUrl.'">'.$aLink[1].'</a><br>';
 
 } // END for ($i=1;$i<count($sExplode);$i++){
 
 
} // END if (count($sExplode)>1){
return $sReturn;
}
echo "<br><b>Test:</b>".linklist_show($text);
 
Beschreibung: in einem Text alle Zeilen auf eine bestimmte Anzahl Zeichen beschränken. Optitional kann man auch ein Zeichen wie "> " vor die Zeile setzen. Sehr nützlichen wenn man Mails oder sonstige Texte zitieren will.

CODE /**
* make sure the lines are only $cols long */

function wordwrap ($string, $cols = 72, $prefix = "") {
$t_lines = split( "\n", $string);
$outlines = "";
while(list(, $thisline) = each($t_lines)) {
if(strlen($thisline) > $cols) {
$newline = "";
$t_l_lines = split(" ", $thisline);
while(list(, $thisword) = each($t_l_lines)) {
while((strlen($thisword) + strlen($prefix)) > $cols) {
$cur_pos = 0;
$outlines .= $prefix;

for($num=0; $num < $cols-1; $num++) {
$outlines .= $thisword[$num];
$cur_pos++;
echo $cur_pos."<br>";
}
$outlines .= "\n";
$thi1sword = substr($thisword, $cur_pos, (strlen($thisword)-$cur_pos));
}
if((strlen($newline) + strlen($thisword)) > $cols) {
$outlines .= $prefix.$newline."\n";
$newline = $thisword." ";
} else {
$newline .= $thisword." ";
}
}
$outlines .= $prefix.$newline."\n";
} else {
$outlines .= $prefix.$thisline."\n";
}
}
return $outlines;
}


PS Der Thread ist zwar schon ein bisschen älter, aber vieleicht wirds ja noch eine nette Sammlung...
 
Zurück
Oben