Číslovanie strán – PHP – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Číslovanie strán – PHP – Fórum – Programujte.comČíslovanie strán – PHP – Fórum – Programujte.com

 

9. 12. 2008   #1
-
0
-

Dobrý deň,

potreboval by som poradiť s číslovaním strán v PHP, s ktorým si neviem dať už rady dlhšiu dobu. Mám premennú content, ktorá obsahuje dlhý reťazec textu, ktorý je navyše ešte HTML formátovaný. Potrebujem vsadiť po skončení každej strany do premennej content "<br>STRANA - $cislo_strany</br>".

Pôvodne som to riešil tak trochu drevorubačsky, že som si určil koľko znakov bude mať jedna strana a po prekročení tohto znaku som len vložil do reťazca "<br>STRANA - $cislo_strany</br>". Problém je však v tom, čo ak mi to vyjde niekde v strede html tagu. Potom sa mi poškodí html formátovanie textu.

Ďakujem za pomoc, v prípade otázok som online na ICQ: 336259591, želám pekný deň.

Nahlásit jako SPAM
IP: 78.98.13.–
soudruh0
Newbie
9. 12. 2008   #2
-
0
-

Jaký číslování stran? Od kdy má HTML stránky? Nebo to exportuješ do PDF ( tam se to dá vyřešit pomocí jednoho příkazu v fpdf) ?

Nahlásit jako SPAM
IP: 82.100.63.–
SteelBull
~ Anonymní uživatel
6 příspěvků
9. 12. 2008   #3
-
0
-

Nie, Nie, viem, ze sa jedna o zaujimavu ulohu, ale takuto poziadavku som dostal a mam ju naprogramovat. Jedna sa o tzv. internetovy casopis. Autor posle prispevok a ak ho oponent schvali, potom ho mozem odpublikovat. Kazdemu clanku som pridelil jedinecne identifikacne cislo, aby sa dal clanok rychlo najst a identifikovat. Vsetko toto uz mam a vsetko funguje. Moj nadriadeny mi vsak dal taktuto zaujimavu ulohu:
Ze jemu identifikacne cislo nepomoze, ze on aby svoj prispevok mohol spravne podla normy uviest, potrebuje vediet cislo strany od - do, kde bol publikovany. No a tu vznikla moja uloha ocislovat strany na HTML stranke. Obrazky ma nezaujimaju - nemusia byt vo vypocte cisla strany zohladnene. Potrebujem len vymysliet, ako by sa dalo spravit to, ak mam v premennej content ulozene napr. toto: "<cokolvek>dlllllhyyy retazec</cokolvek> slov a viet", aby to nerobilo takuto chybu:

"<cokolvek <br> Strana 1 <br> >dlllllhyyy retazec</cokolvek> slov a viet" - rozbije tag - vlozi tag do tagu
"<cokolvek>dlllllh<br> Strana 1 <br>yyy retazec</cokolvek> slov a viet" - sekne slovo v strede
"<cokolvek>dlllllhyyy <br> Strana 1 <br> retazec</cokolvek> - toto je spravne


Dakujem.

Nahlásit jako SPAM
IP: 78.98.138.–
soudruh0
Newbie
9. 12. 2008   #4
-
0
-



$dlouhy_retezec = "ABCDEF 123456 ABCDEF 0123456 <b>ZDÁÁÁR</b> 00000 IFVOVP";
$limit = 100; // kolik znaků na stránku
$retezec = $dlouhy_retezec; // Pokud by nebylo potřeba dělit na stránky
if(strlen($dlouhy_retezec) > $limit) // Je delší než počet znaků na stránku?
{
$retezec = substr($dlouhy_retezec, 0, strrpos(substr($dlouhy_retezec, 0, $limit)," "))."<b> Další stránka</b> ";
}
echo $retezec;

tenhel script je ale potřeba spouštět nějakým cyklem a ještě to neřeší <font color="#FF66FF"> kde to může vložit do tý mezery

Nahlásit jako SPAM
IP: 82.100.63.–
SteelBull
~ Anonymní uživatel
6 příspěvků
9. 12. 2008   #5
-
0
-

no vad prave, po tialto som prisiel aj ja. Neviem vyriesit to nevkladanie do tej medzery prave.

Nahlásit jako SPAM
IP: 78.98.138.–
soudruh0
Newbie
9. 12. 2008   #6
-
0
-

To by jsi musel vyřešit regulérním příkazem, v těch se tolik nevyznám...

Nahlásit jako SPAM
IP: 82.100.63.–
OndreJ
~ Moderátor
0
Stálý člen
9. 12. 2008   #7
-
0
-

Taký kanón na vrabce, ale mohlo by to fungovať. Na odlaďovanie a optimalizáciu, už dnes nemám síl. A to zobrazenie strany si ošetri v CSS, lebo keď sa náhodou nachádza medzi tágami, tak preberá štýly.

<?php

define('LIMIT', 10); // pocet znakov na jednu stranu
$content = '<p>Lorem ipsum<font color="#FF0000"> dolor sit</font> amet, consectetur adipiscing elit. Ut purus lorem, venenatis at, consequat vel, mollis sit amet, sem. Sed laoreet dolor a eros.</p>';
$dlzka = strlen($content);
$cislo_strany = 1;

$pocet = 0; // odpocet znakov
$tag = false;
for ($i = 0; $i < $dlzka; $i++) {
if ($content[$i] == '<') {
$tag = true;
continue;
}
if ($content[$i] == '>') {
$tag = false;
continue;
}
if (!$tag) {
$pocet++;
if ($content[$i] == ' ' && $pocet >= LIMIT) {
$doplnok = 'STRANA - '.$cislo_strany.'';
$velkost_doplnka = strlen($doplnok);
$content = substr($content, 0, $i).$doplnok.substr($content, $i);
$dlzka += $velkost_doplnka;
$i += $velkost_doplnka;
$cislo_strany++;
$pocet = 0;
}
}
}

echo $content;
?>

Nahlásit jako SPAM
IP: 213.151.246.–
SteelBull
~ Anonymní uživatel
6 příspěvků
10. 12. 2008   #8
-
0
-

Ano, aj nad tymto algoritmom som uvazoval, ale ked da niekto do textu znak >, alebo <, tak ten cyklus bude ratat tagy zle. A toto som prave nevedel vyriesit.

Nahlásit jako SPAM
IP: 78.98.138.–
KIIV
~ Moderátor
+43
God of flame
10. 12. 2008   #9
-
0
-

v textu mit < nebo > nemuzes... musi se tam nahradit html entitama.. jinak to pak nemusi pracovat spravne

Nahlásit jako SPAM
IP: 80.188.94.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 20 hostů

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý