Odstranit tag z linku – PHP – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Odstranit tag z linku – PHP – Fórum – Programujte.comOdstranit tag z linku – PHP – Fórum – Programujte.com

 

Kvetos0
Newbie
6. 4. 2014   #1
-
0
-

Ahoj!

Používám pro komentáře v PHP-Fusion pod články tento zápis kódu:

$comment = trimlink(strip_tags(parseubb($data['comment_message'])), 35);

Vyhazuje mi to však v odkazu na zmín ěný komentář článku špatný teext z toho komentáře viz:

"Používam Codehttp://www.profitux..."

Nedaří se mi odstranit to Code před tím odkazem, což způsobuje proměnná "data".

Jak na problém?

Díky za radu.

Nahlásit jako SPAM
IP: 188.175.48.–
peter
~ Anonymní uživatel
3981 příspěvků
8. 4. 2014   #2
-
0
-

??? Neni jasne, co ktera funkce s tim udela a jaky je vstup. Text 'Code' se da zrusit treba jako str_replace, ale nevim, zda ti to bude delat dobrotu... code je mozna tag <code>. A mozna to tam pridava trimlink. Si to najdi, co ty funkce s textem delaji a ktera to dela. Treba si to postupne ukladej do promenne a echuj.

Nahlásit jako SPAM
IP: 2001:718:2601:400:0:5efe:...–
Kvetos0
Newbie
9. 4. 2014   #3
-
0
-

OK! Díky moc, zkusím a sdělím pak, co jsem zjistil.

Nahlásit jako SPAM
IP: 188.175.48.–
Kvetos0
Newbie
9. 4. 2014   #4
-
0
-

#3 Kvetos
Když jsem to zjednodušil a nechal jen trimlink, tak to CODE zmizelo!!

$comment = trimlink($data['comment_message'], 30);

tady je zápis:

$result = dbquery("    SELECT comment_id, comment_item_id, comment_type, comment_message
                    FROM ".DB_COMMENTS."
                    WHERE comment_hidden='0'
                    ORDER BY comment_datestamp DESC
                    ");
if (dbrows($result)) {
    $output = "";
    $i = 0;
    while($data = dbarray($result)) {
        if ($i == $displayComments) { break; }
        switch ($data['comment_type'])
     {
            case "N":
                $access = dbcount(    "(news_id)", DB_NEWS,
                                    "news_id='".$data['comment_item_id']."' AND
                                    ".groupaccess('news_visibility')." AND
                                    (news_start='0'||news_start<=".time().") AND
                                    (news_end='0'||news_end>=".time().") AND
                                    news_draft='0'
                                    ");
                if ($access > 0) {
                    $comment = trimlink($data['comment_message'], 30);
                    $commentStart = dbcount("(comment_id)", DB_COMMENTS, "comment_item_id='".$data['comment_item_id']."' AND comment_type='N' AND comment_id<=".$data['comment_id']);
                    if ($commentStart > $settings['comments_per_page']) {
                        $commentStart = "&amp;c_start=".floor($commentStart / $settings['comments_per_page']) * $settings['comments_per_page'];
                    } else {
                        $commentStart = "";
                    }
                    $output .= THEME_BULLET." <a rel="nofollow" href='".BASEDIR."news.php?readmore=".$data['comment_item_id'].$commentStart."#c".$data['comment_id']."' title='".$comment."' class='side'>".$comment."</a><br />\n";
                    $i++;
                }

Jenže mi tedko zobrazuje nekorektně odkazy na komentáře v seznamu takto nepěkně s tagy v linku:

Připojen obrázek.

Nahlásit jako SPAM
IP: 188.175.48.–
peter
~ Anonymní uživatel
3981 příspěvků
9. 4. 2014   #5
-
0
-

No, v tom puvodnim mas 3 funkce v sobe: trimlink, strip_tags, parseubb. strip_tags je popsana v php manualu. Co delaji ty zbyle dve netusim. Jaky je vstupni retezec, netusim. Jaky chces vystup, netusim. Z tohoto mracku prset rady nebudou :)

<?php
$a = preg_quote('[url]');
$b = preg_quote('[/url]');
$reg = "~^.*{$a}()|{$b}().*$|{$a}(.*){$b}~";
$str = 'blabla [url]http:\\\\www[/url] a vsechno v oranzovem ramecku';
$str = preg_replace($reg,"$1",$str);
echo $str;
?>
Nahlásit jako SPAM
IP: 2001:718:2601:400:0:5efe:...–
Kvetos0
Newbie
9. 4. 2014   #6
-
0
-

Díky móóc!!

Nahlásit jako SPAM
IP: 188.175.48.–
peter
~ Anonymní uživatel
3981 příspěvků
10. 4. 2014   #7
-
0
-

nebo by se dalo pouzit preg_match_all misto tech slozitych vyrazu.

Nahlásit jako SPAM
IP: 2001:718:2601:400:0:5efe:...–
Kvetos0
Newbie
10. 4. 2014   #8
-
0
-

#7 peter
jo? No nevím zda to tam zuapasuju preg_match, vím je to novější a má se používat... njn... uf!

Nahlásit jako SPAM
IP: 188.175.48.–
Kvetos0
Newbie
10. 4. 2014   #9
-
0
-

Zapopmněl jsem zdůraznit, že jde vlastně o schování BB kódů, jako je CODE, B, atd...

Nahlásit jako SPAM
IP: 188.175.48.–
Kvetos0
Newbie
11. 4. 2014   #10
-
0
-

Tak jsewm zjistil, jak se objevuje v odu to "CODE":

<div class="code_bbcode"><div class="tbl-border tbl2" style="width:400px"><strong>Code</strong></div><div class="tbl-border tbl1" style="width:400px;white-space:nowrap;overflow:auto"><code style="white-space:nowrap">xxxx----////<br><br><br></code></div></div><div style="height: 5px;"></div></div>
Nahlásit jako SPAM
IP: 188.175.48.–
Kvetos0
Newbie
11. 4. 2014   #11
-
0
-

To:


xxxx----////
 

je vlastní vložený jako kód, ten je dopbrý nemá v textu na ztačátku ani na konci TAG!

Nahlásit jako SPAM
IP: 188.175.48.–
Kvetos0
Newbie
11. 4. 2014   #12
-
0
-

... ale co tam tedy přidává CODE, zda z CSS, či z čeho..., také netuším???!!

Nahlásit jako SPAM
IP: 188.175.48.–
Kvetos0
Newbie
11. 4. 2014   #13
-
0
-

#12 Kvetos
BBcode tag mám nastaven takto:

if($codde > 0) $text = preg_replace("#\[code\](.*?)\[/code\]#sie", "'[code]'.bbcode_off('\\1', '2').'[/code]'", $text);

...ale stále CODE ve výpiusu komentářů je na cačátku textu. Vypadá to fakt blbě.Jiné tágy mi to nedělají!!!
Nahlásit jako SPAM
IP: 188.175.49.–
Kvetos0
Newbie
12. 4. 2014   #14
-
0
-

VYŘEŠENO!!!

Tak v PHP-Fusion docházelo ke zobrazování textu 'Code' v tagu BBCode (před zdrojovým kódem) v odkazech komentářů prostřednictvím souboru code.php.

Konkrétně cestou: /locale/Czech/bbcodes/code.php

Stačilo, když jsem v tomto souboru zakomentovat příslušný řádek, takto:

<?php
$locale['bb_code_description'] = "Zobrazí text v CODE";
$locale['bb_code_usage'] = "Napsaný text v code";
//$locale['bb_code_code'] = "Code";
$locale['bb_code_save'] = "Zdroj stáhnutí";
?>


Nyní se již 'Code' v linku z komentářů nezobrazuje.

Nahlásit jako SPAM
IP: 188.175.48.–
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, 21 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ý