Как да съкратя заглавие от тема в форум?

svilkata12

Registered
ето това е кода от един урок за последни теми в форума можете ли да ми кажете как да направя така, че да съкращава заглавията със ... накрая примерно?

Код:
<?php 

/*** phpBB - Last Topics System ***/ 



//------------------------------ 

//Edit this parameters: 



//MySQL server adress 

$host=""; 



//Username 

$user=""; 



//Password 

$pass=""; 



//Database 

$db=""; 



//Table Prefix 

$table="phpbb_topics"; 



//kolko temi da izkarva 

$latest="9"; 



//-------------------------- END 







//------------------------------ 

//Don't edit ! 



$link=mysql_connect($host, $user, $pass); 

$db=mysql_select_db($db); 

$query="select * from $table where forum_id like '10' order by topic_time desc limit 0,$latest"; 

$result=mysql_query($query, $link); 

while ($row=mysql_fetch_row($result)) { 

echo "<img src=''> <a href='http://форум/viewtopic.php?t=$row[0]' target='_blank'>$row[2]</a><br>"; 

} 



//-------------------------- END 



?>
 
Това, 20, което е удебелено в кода, там трябва да въведеш на колко знака да съкращава, тоест в момента е на 20, тоест ще показва до 20 знака..


<?php

/*** phpBB - Last Topics System ***/



//------------------------------

//Edit this parameters:



//MySQL server adress

$host="";



//Username

$user="";



//Password

$pass="";



//Database

$db="";



//Table Prefix

$table="phpbb_topics";



//kolko temi da izkarva

$latest="9";



//-------------------------- END







//------------------------------

//Don't edit !



$link=mysql_connect($host, $user, $pass);

$db=mysql_select_db($db);

$query="select * from $table where forum_id like '10' order by topic_time desc limit 0,$latest";

$result=mysql_query($query, $link);

while ($row=mysql_fetch_row($result)) {

$title=substr($row[2], 0, 20)."..";

echo "<img src=''> <a href='http://форум/viewtopic.php?t=$row[0]' target='_blank'>$title</a><br>";

}



//-------------------------- END



?>
 
$title = $row[2];
$totchki = (strlen($title)>15) ? '...' : ''.
$title = substr($title,0,15).$totchki;

И после изкарваш $title.
Замени 15 с броя на символите, след които ще съкращаваш.
 
$max_simbols =25; //олко символа да изкарва

function sakra6tenie($var)
{
global $max_simbols;
if (strlen($var) > $max_simbols)
{
return substr($var, 0, $max_simbols)."...";
}
else
{
return $var;
}
}


<h2>".sakra6tenie($row[zaglavie])."</h2>
 
teroristd каза:
$max_simbols =25; //олко символа да изкарва

function sakra6tenie($var)
{
global $max_simbols;
if (strlen($var) > $max_simbols)
{
return substr($var, 0, $max_simbols)."...";
}
else
{
return $var;
}
}


<h2>".sakra6tenie($row[zaglavie])."</h2>

Като го правиш с функция, не мсилиш, ли, че е непрактично да задаваш определена стойност на всички възможни стрингове, което биха били съкратени, в случай, че искаш да го правиш с функция, както в твоя случай, най-практично би било, максималната дължина на стринга да се задава като параметър на функцията а не да се ползват глобални променливи, които ще са ограничение за всички възможни стрингове, които ползват функцията.. Някак си от гледна точка на практичноста и по-точно ако имаш нужда да съкратиш текст, а не заглавие, но трябва да съкратиш и двете, няма да ползваш две функции, защото 25 символа за един текст са доста малко.. Просто го задаваш като параметър..
 
kulov каза:
teroristd каза:
$max_simbols =25; //олко символа да изкарва

function sakra6tenie($var)
{
global $max_simbols;
if (strlen($var) > $max_simbols)
{
return substr($var, 0, $max_simbols)."...";
}
else
{
return $var;
}
}


<h2>".sakra6tenie($row[zaglavie])."</h2>

Като го правиш с функция, не мсилиш, ли, че е непрактично да задаваш определена стойност на всички възможни стрингове, което биха били съкратени, в случай, че искаш да го правиш с функция, както в твоя случай, най-практично би било, максималната дължина на стринга да се задава като параметър на функцията а не да се ползват глобални променливи, които ще са ограничение за всички възможни стрингове, които ползват функцията.. Някак си от гледна точка на практичноста и по-точно ако имаш нужда да съкратиш текст, а не заглавие, но трябва да съкратиш и двете, няма да ползваш две функции, защото 25 символа за един текст са доста малко.. Просто го задаваш като параметър..



ok съгласих се
 
kulov каза:
Това, 20, което е удебелено в кода, там трябва да въведеш на колко знака да съкращава, тоест в момента е на 20, тоест ще показва до 20 знака..


<?php

/*** phpBB - Last Topics System ***/



//------------------------------

//Edit this parameters:



//MySQL server adress

$host="";



//Username

$user="";



//Password

$pass="";



//Database

$db="";



//Table Prefix

$table="phpbb_topics";



//kolko temi da izkarva

$latest="9";



//-------------------------- END







//------------------------------

//Don't edit !



$link=mysql_connect($host, $user, $pass);

$db=mysql_select_db($db);

$query="select * from $table where forum_id like '10' order by topic_time desc limit 0,$latest";

$result=mysql_query($query, $link);

while ($row=mysql_fetch_row($result)) {

$title=substr($row[2], 0, 20)."..";

echo "<img src=''> <a href='http://форум/viewtopic.php?t=$row[0]' target='_blank'>$title</a><br>";

}



//-------------------------- END



?>
А как мога да направя точките да се появяват само на тея мнения, които са най-дългите, а не на всички?
 
<?php

/*** phpBB - Last Topics System ***/



//------------------------------

//Edit this parameters:



//MySQL server adress

$host="";



//Username

$user="";



//Password

$pass="";



//Database

$db="";



//Table Prefix

$table="phpbb_topics";



//kolko temi da izkarva

$latest="9";



//-------------------------- END







//------------------------------

//Don't edit !



$link=mysql_connect($host, $user, $pass);

$db=mysql_select_db($db);

$query="select * from $table where forum_id like '10' order by topic_time desc limit 0,$latest";

$result=mysql_query($query, $link);

while ($row=mysql_fetch_row($result)) {

$title=$row[2];
$sukra6tenie=20;
if (strlen($title) > $sukra6tenie)
{
$title=substr($row[2], 0, $sukra6tenie)."..";
}
else
{
$title=$row[2];
}

echo "<img src=''> <a href='http://форум/viewtopic.php?t=$row[0]' target='_blank'>$title</a><br>";

}



//-------------------------- END



?>
 

Back
Горе