| | |
| Stránka: 1 z 1
| [ Príspevkov: 5 ] | |
Autor | Správa |
---|
Registrovaný: 17.11.11 Prihlásený: 28.03.21 Príspevky: 28 Témy: 10 | Napísal Han5vk: 17.11.2011 21:18 | |
|
Zdravím, mám problém s týmto kódom
Kód: function nahrada($m) { return $m[1] . htmlspecialchars($m[2], ENT_QUOTES, 'UTF-8', false) . $m[3]; } preg_replace_callback('~(<pre>)(.*)(</pre>)~isU', 'nahrada', $text); Tento kód má za úlohu prehodiť všetky HTML znaky na entity, no keď do premennej $text načítam súbor, v ktorom je napríklad toto Kód: preg_match_all("/<h2>(.*)<\/h2>/Us",$text,$nadpis, PREG_SET_ORDER); echo "<h2>"; echo $nadpis[0][1]; echo "</h2>"; (Výpis h2jek zo súboru na výpis článkov)
Tak spracuje všetko po značku <h2>. Túto značku vyhodnotí, a potom už nič. Nevypíše obsah echa, ale vypíše mi celý kód ako ";echo $nadpis [0][1];echo... Viete mi poradiť aký je tu problém?
|
|
Registrovaný: 11.08.07 Príspevky: 4088 Témy: 34 Bydlisko: Brno | Napísal Ďuri: 17.11.2011 22:01 | |
|
Ten tvoj horny kod nerobi to, co si mozno predstavujes - on na entity prevedie iba tie znaky, ktore su medzi <pre> a </pre>. Takze by bolo asi vhodne ujasnit si, co presne pozadujes, a ten kod, ktory chces v HTML interpretovat presne tak, ako je, dat bud do <pre> a podhodit tej funkcii, alebo upravit funkciu.
A dalsia vec, ty ocakavas, ze ten spodny kod sa ti bude vykonavat? Lebo tak nejak som to pochopil z tvojho "Nevypíše obsah echa".
|
|
Registrovaný: 17.11.11 Prihlásený: 28.03.21 Príspevky: 28 Témy: 10 | Napísal autor témy Han5vk: 18.11.2011 14:20 | |
|
Viem, že sa to má prehadzovať len medzi značkami <pre>, a ten spodný kód má vybrať zo súboru $text obsah medzi tagmi <h2> a potom ho echom vypísať, a to aj robí, ak ho otvorím samostatne, no keď ho otvorím v tom hornom a následne celý vypíšem tak mi to najskôr ten horný kód odserie... Zjednodušene, keď otvorím celý súbor (z ktorého mám časť v druhom kóde) samostatne, tak robí čo má. No keď ho otvorím v nadradenom súbore (z ktorého je prvý kód), načítam ho do premennej, prebehnem cez ten prvý kód a vyechujem to čo mi výjde z preg_replace_callback tak to po spomínanej značke <h2> odchádza.
// pridané po 16 hodinách 7 minútach od posledného príspevku
Tak čo je s tým?
|
|
Registrovaný: 11.08.07 Príspevky: 4088 Témy: 34 Bydlisko: Brno | Napísal Ďuri: 18.11.2011 14:39 | |
|
Nenahanaj nas, nikto tu nie je povinny odpovedat ti.
Mohol by si zaslat co najjednoduchsi, ale kompletny kod, ktory by sme len spustili a videli by sme, aky je vystup a aky konkretny vystup by si si miesto toho predstavoval? Nemozeme vediet, ci chybu nerobis niekde inde, a cim podrobnejsie sa svoju situaciu snazis popisat, tym viacej som domotany.
|
|
Registrovaný: 17.11.11 Prihlásený: 28.03.21 Príspevky: 28 Témy: 10 | Napísal autor témy Han5vk: 19.11.2011 11:43 | |
|
Prepáč, v hlavnom súbore (weby.php) mám to menenie HTML entít-
Kód: if (!isset($_GET['clanok'])) { $strankaa= "index"; } else {$strankaa= $_GET['clanok'];} $soubor= "weby/".$strankaa.".php" or ".html" ; if (!file_exists($soubor)) { $soubor= "nenaslo.php"; };
$vstup= file_get_contents($soubor);
function nahrada($m) { return $m[1] . htmlspecialchars($m[2], ENT_QUOTES, 'UTF-8', false) . $m[3]; } $vypis = preg_replace_callback('~(<pre>)(.*)(</pre>)~isU', 'nahrada', $vstup);
echo $vypis; Potom mám vo vypísanom súbore (premenná $subor- vstup $vypis- vystup toho HTML konvertovania) takýto kód: Kód: if (!isset($_GET['clanok'])) { $stranka= "index"; } else {$stranka= $_GET['clanok'];} $subor= "weby/".$stranka.".php" or ".html" ; if (!file_exists($subor)) { $subor= "nenaslo.php"; };
$soubor="1"; // Základná hodnota
// OVEROVANIA
while (file_exists("weby/".$soubor.".php")) { // $subor zväčšujem kým existuje $vyber = $soubor; // načítam ho aj do $vyber $soubor++;} // $subor zväčšujem kým existuje
while (file_exists("weby/".$vyber.".php")) { // kým existuje $vyber
// VYBER SLOV
$text= file_get_contents("weby/".$vyber. ".php"); // otvorím momentálny súbor
preg_match_all("/<h2>(.*)<\/h2>/Us",$text,$nadpis, PREG_SET_ORDER); echo "<h2>"; echo $nadpis[0][1]; echo "</h2>";
preg_match_all("/<small>(.*)<\/small>/Us",$text,$male, PREG_SET_ORDER); echo "<small>"; echo $male[0][1]; echo "</small>";
preg_match_all("/<p>(.*)<\/p>/Us",$text,$obsah, PREG_SET_ORDER); echo "<p>";
$slov = 40; // počet slov ve zkráceném článku... $text_out = explode(" ", $obsah[0][1]); // spočítání slov podle mezer for($y=0; $y < $slov; $y++) { // cyklus pro zobrazení zadaného počtu slov
// VYPIS if (isset($text_out[$y])) { echo $text_out[$y]." "; } ; // Výpis zkráceného článku } echo "...</p>";
echo "<a href='?str=weby&clanok=" .$vyber. "' class='citaj'>"; echo "(Čítaj viac)"; echo "</a>"; echo "<br><br>";
// ETC. $vyber--; // Zmenšujem číslo súboru a beží to znova }
Prepáčte, za tú fúru kódu, ale vážne netuším, čo môže z toho byť najdôležitejšie :/ K tomu čo to robí a to čo to má robiť. Hlavný súbor (weby.php) má zmeniť všetky HTML znaky na entity (medzi značkami <pre>) a do tohto súboru vkladám súbor index.php, ktorý mi vypisuje články (prvých 40 slov). Tento súbor index.php funguje samostatne, ale ak ho vložím do hlavného súboru weby.php a tam mám tú funkciu na zmenu HTML značiek tak mi to vysype von iba kód, tzn. nespracuje ho, len ho prosto vypíše celý na výstup. Toto mi vypisuje až po značke <h2> v prvom preg_replace_callback(). Prakticky mi to spracuje HTML značky, ale zvyšok kódu nie, takže sa mi žiadne kúsky článkov nezobrazia, akurát tak kódy ktoré ich majú vytiahnúť. Snáď ste pochopili aspoň niečo. // pridané po 1 hodine 36 minútach od posledného príspevkuVie niekto prečo to hapruje?
|
|
| Stránka: 1 z 1
| [ Príspevkov: 5 ] | |
Podobné témy | Témy | Odpovede | Zobrazenia | Posledný príspevok |
---|
| HTML entity a SEO v Internetový marketing, SEO, reklama | 22 | 1022 | 10.11.2011 23:39 shaggy | | Problém s prevodom AND na NAND v Ostatné | 2 | 334 | 25.10.2014 16:30 EmeriX | | cannot generate system identifier for general entity v HTML, XHTML, XML, CSS | 8 | 569 | 29.04.2008 20:41 Tominator | | platba prevodom do Nemecka v Obchody, reklamácie a právo | 5 | 925 | 09.12.2010 18:36 Xaltotun | | assembler pomoc s prevodom v Assembler, C, C++, Pascal, Java | 2 | 692 | 27.03.2010 19:10 blw90 | | assembler uloha pomoc s prevodom... v Assembler, C, C++, Pascal, Java | 1 | 604 | 28.03.2009 17:39 bbeni | | ako mam zaplatit fakturu , prevodom na ucet v Obchody, reklamácie a právo | 17 | 4094 | 15.11.2010 18:28 walther | | HTML problém v Delphi, Visual Basic | 0 | 873 | 08.08.2008 21:20 hackerwoody | | PROBLÉM HTML frame v HTML, XHTML, XML, CSS | 6 | 582 | 01.06.2011 15:51 mrPavolM | | html validacia problem v HTML, XHTML, XML, CSS | 17 | 1344 | 19.12.2006 16:27 itsgoingd | | Problem v HTML v HTML, XHTML, XML, CSS | 3 | 1153 | 04.06.2006 11:02 shaggy | | html,css problém v HTML, XHTML, XML, CSS | 6 | 1891 | 07.03.2019 17:00 weroro | | html,css - opacity problem v HTML, XHTML, XML, CSS | 4 | 355 | 30.10.2019 20:53 OnO | | problem s vloženim do html v PHP, ASP | 2 | 378 | 02.08.2009 12:58 dartanan | | Problem s konverziou BBCode na HTML tagy v PHP, ASP | 0 | 341 | 28.06.2010 21:11 newboy1 | | mam problem neviem vkladat text do odkazov HTML v HTML, XHTML, XML, CSS | 7 | 1177 | 10.03.2006 18:43 Intelman |
| Nemôžete zakladať nové témy v tomto fóre Nemôžete odpovedať na témy v tomto fóre Nemôžete upravovať svoje príspevky v tomto fóre Nemôžete mazať svoje príspevky v tomto fóre
|
|