Autor Zpráva
VeronikaK
Profil *
Budu mít třeba text:

Johann Sebastian Bach byl německý hudební skladatel a virtuóz na klávesové nástroje, považovaný za jednoho z největších hudebních géniů všech dob a završitele barokního hudebního stylu. Bachovo dílo mělo a má značný vliv na další vývoj hudby počínaje Mozartem a Beethovenem až po Schönberga nebo Goreckého.

A já ho potřebuji přes PHP script (připomínám, že texty budou různé), potřebují načíst řekněme prvních 10 slov, udělat z toho <H1> nadpis a pak pokračovat v popisu .... ale již bez textu, který byl použít v <H1>.

Moc Vám děkuji.
Michal Benda
Profil
Mohlo by to být asi takto:


$text = "Johann Sebastian Bach byl německý"; // atd.

$slova = explode(" ", $text);

$nadpis = "";
$pocet_znaku_v_nadpise = 0;

for($i=0;$i<10;$i++){
  $nadpis .= " ".$slova[$i];
  $pocet_znaku_v_nadpise += strlen($slova[$i]) + 1;
}

$nadpis = substr($nadpis, 1);
$pocet_znaku_v_nadpise--;

$zbytek_textu = substr($text, $pocet+znaku_v_nadpise); 

echo $nadpis.$zbytek_textu;



Dalo by se to samozřejmě celé zapouzdřit do funkce.
Kry5
Profil
Pokud text načítáš z databáze tak si ho jako první ulož do nějaké proměnné.
Pak si text rozlož na jednotlivá slova:
$text = explode(" ", $text);

A pak prvních deset prvků pole $text projdi cyklem:
for($i=0; $i<10; $i++) 
	{
		$first_ten .= " ".$text[$i];
	}


Po tom co tohle provedeš budeš mí t v proměnné $first_ten uloženo prvních deset slov pak stačí:
<h1><?php echo htmlspecialchars($first_ten); ?> 



EDIT: nevšiml jsem si, že se z textu musí smazat ta slova z nadpisu -> použij příspěvek nademnou.
petr 6
Profil
$text="Johann Sebastian Bach byl německý hudební skladatel a virtuóz na klávesové nástroje...";

$slova=explode(" ",$text);

echo "<b>".implode(" ",array_slice($slova,0,10))."</b>";
echo " ".implode(" ",array_slice($slova,10));

Za 10 si dosaď počet slov, která chceš do nadpisu
Jake898
Profil
Jedno z mnoha dalších řešení
<?php
$text = 'Johann Sebastian Bach byl německý hudební skladatel a virtuóz na klávesové nástroje, považovaný za jednoho z největších hudebních géniů všech dob a završitele barokního hudebního stylu. Bachovo dílo mělo a má značný vliv na další vývoj hudby počínaje Mozartem a Beethovenem až po Schönberga nebo Goreckého.';

preg_match('~(\S+\s+){0,10}~', $text, $matches);

echo trim($matches[0]) . '...';

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

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

0