Försöker ta ut allt inom en TD med:
$sku = preg_replace("<td\sheight=17\sstyle=\"height:12\.75pt\">(.*?)</td>","\1",$line);
Men svaret blir bara:
Warning: Unknown modifier '(' in /home/k/krogkort/www/admin/add.php on line 11
Vad är fel?
4 svar · 273 visningar · startad av Gaski
Försöker ta ut allt inom en TD med:
$sku = preg_replace("<td\sheight=17\sstyle=\"height:12\.75pt\">(.*?)</td>","\1",$line);
Men svaret blir bara:
Warning: Unknown modifier '(' in /home/k/krogkort/www/admin/add.php on line 11
Vad är fel?
$str = '<td height=17 style="height:12.75pt">Innehållet</td>';
$str = preg_replace("/<td.*?\>(.*?)<\/td>/","<b>\\1</b>",$str);
print ($str);
Innehållet hamnar i \\1.
Redigerat: Upptäckte att forumet plockar bort backslashar om man skriver inom kodsnuttarna. skumt. Därför skrev jag som vanlig text istället.
Obs! Denna varienten är ganska så "greedy"
Nu gör den bara om det den matchar. Jag skulle vilja att den bara skriver ut \\1 och rensar bort alla annan kod från filen. Dvs, övriga <td> och <tr> osv... Går det med preg_replace?
Allt går med preg_replace. Bara du förstår hur det fungerar, vilket är mycket svårt. Läs igenom följande sidor för att få ett bättre grepp:
http://www.perldoc.com/perl5.8.0/pod/perlre.html
http://hem.passagen.se/tarning/christer/util/regexp.htm
Själva funktionen preg_replace verkar returnera hela strängen utan ändringar om den inte matchar. Det är det som jag inte vill, regexpen är det inge fel på...