Ben personalyzed etiketler oluşturabilirsiniz Bir bbcode ayrıştırıcı sınıf yapmak için çalışıyorum, ama ben URL'ler ile biraz problem var
Ben bir sorun olmadan normal ifadeler sayesinde ihtiyacınız olan tüm yaptı ettik ama belirli bir URL'ye işaret özel bir etiket oluşturmak için denediğimde bir sorun var.
Dersimde böyle bir yöntem ekledik:
<?
private function check_url_from_bbcode ($tag = "url", $css = null, $url_path = null) {
$regex_url = " a-zA-Z0-9\:\/\-\?\&\.\=\_\~\#\'";
if (!isset ($css)) $css = $this->css_link;
$regex_url = $this->regex_url;
if (isset ($url_path)) $url_path = "$url_path/";
$this->bbcode = preg_replace ("/\[$tag\]([$regex_url]*)\[\/$tag\]/", "<a title=\"Vai al link\" class=\"$css\" href=\"$url_path$1\">$1</a>", $this->bbcode);
$this->bbcode = preg_replace ("(\[$tag\=([$regex_url]*)\](.+?)\[/$tag\])", "<a title=\"Vai al link\" class=\"$css\" href=\"$url_path$1\">$2</a>", $this->bbcode);
}
?>
kod klasik adresler ile çalışıyor [url] http://ciao.com%5B/url%5D & [URL = http://ciao.com%5Dciao%5B/url%5D
ama ben, bu yüzden [sanatçı] Lemon Jelly [/ sanatçı] last.fm tarzı gibi özel bir url konusu sayfanın dava ile bir sorunum var.
The bblink is converted in < a href="http://ciao.com/artist/Lemon Jelly">Lemon Jelly< /a> (I've used the spaces < a> only to show the link code).
The link has the whitespaces on the href attribute so can't never work.
<?
private function check_url_from_bbcode ($tag = "url", $css = null, $url_path = null) {
$regex_url = " a-zA-Z0-9\:\/\-\?\&\.\=\_\~\#\'";
if (!isset ($css)) $css = $this->css_link;
$regex_url = $this->regex_url;
if (isset ($url_path)) $url_path = "$url_path/";
// begin of the problem
$this->bbcode = preg_replace ("/\[$tag\]([$regex_url]*)\[\/$tag\]/", "<a title=\"Vai al link\" class=\"$css\" href=\"$url_path".str_replace (" ", "+", $1)."\">$1</a>", $this->bbcode);
// end of the problem
$this->bbcode = preg_replace ("(\[$tag\=([$regex_url]*)\](.+?)\[/$tag\])", "<a title=\"Vai al link\" class=\"$css\" href=\"$url_path$1\">$2</a>", $this->bbcode);
}
?>
Bunu önlemek için, ben "boşluk char" yerine tha aynı url ile değil "+" ile href url bölümünü değiştirmek kod küçük bir kısmını yazmıştım, yani [artist]Lemon Jelly[/artist] {[(1 oldu olmalıdır )]}
PHP ile deneyimli değilim ve ben ettik karşılaşma olmadan başka durumda sorunu bu sözdizimini kullanır, sorunun ne olduğundan emin değilim.
Birisi ben yanılıyorum beni nerede bulmak için yardımcı olabilir?
hata türü PHP Ayrıştırma hatası: T_VARIABLE veya in / '$' bekliyor sözdizimi hatası, beklenmedik T_LNUMBER, ...