Autor | Zpráva | ||
---|---|---|---|
filiphk Profil |
#1 · Zasláno: 25. 6. 2010, 15:49:04 · Upravil/a: filiphk
Ahoj,
používám str_replace pro převod odkazů na text: {$odkazy = str_replace(Array("<a href='/psi'>","<a href='/kocky'>","<a href='/ostatni'>","</a>"),"",$odkazy); return $odkazy;}; Zmíněný zápis bych chtěl upravit na preg_replace, aby se na text převedly všechny odkazy, aniž bych je musel jednotlivě vypisovat. Poradí prosím někdo jak na to? Děkuji. |
||
Str4wberry Profil |
#2 · Zasláno: 25. 6. 2010, 15:52:38
Můžeš použít i funkci strip_tags.
|
||
filiphk Profil |
#3 · Zasláno: 25. 6. 2010, 15:56:31
Mohl bys to prosím uvést na konkrétním příkladu?
|
||
__construct Profil |
#4 · Zasláno: 25. 6. 2010, 16:13:41 · Upravil/a: __construct
Mám taký dojem, že strip_tags nedovoľuje manipulovať s atribútmy
Riešil by som to takto: //Načítaj HTML stránku $html = file_get_contents('stranka.html'); //vytvor si DOM document $dom = new DOMDocument(); //Parsuj HTML - @ je tam na potlačenie chýb nevalídneho zdrojáku @$dom->loadHTML($html); //Načítaj všetky anchory $linky = $dom->getElementsByTagName('a'); //Z každého anchoru vyber adresu $odkazy = array(); foreach ($linky as $link){ $odkazy[] = $link->getAttribute('href'); } |
||
filiphk Profil |
#5 · Zasláno: 25. 6. 2010, 16:37:41
Děkuji za možné řešení, avšak přijde mi poněkud složité. Pomocí preg_replace to není možné nějak udělat?
|
||
Str4wberry Profil |
#6 · Zasláno: 25. 6. 2010, 17:11:21
Ale vždyť cílem je odstranit odkazy, jak jsem vyčetl z příkladu, ne?
|
||
filiphk Profil |
#7 · Zasláno: 25. 6. 2010, 18:01:45
Tak již jsem to vyřešil pomocí strip_tags následujícím způsobem:
$odkazy = strip_tags($text); $text = $odkazy; Nyní bych však potřeboval ještě nějak udělat, aby se namísto odstraněných tagů vytvořila mezera, jelikož: 1. původně text vypadal např. takto ...přišel pes.</p><p>Kočka utíká... 2. nyní vypadá takto ...přišel pes.Kočka utíká... |
||
filiphk Profil |
#8 · Zasláno: 25. 6. 2010, 18:39:21
Mezeru mezi interpunkčními znaménky jsem nakonec vyřešil pomocí str_replace, které jsem šoupnul před strip_tags. Celý kód vypadá takto:
function mezera($mezera2) {$mezera2 = str_replace(Array("<br />","</p><p>")," ",$mezera2); return $mezera2;}; $text = mezera($text); $odkazy = strip_tags($text); $text = $odkazy; |
||
Časová prodleva: 14 let
|
0