Aleksandrs Posted April 29, 2007 Report Share Posted April 29, 2007 Vai ar preg_replace() var uztaisīt un ja var, tad kā, adreses atpazīšanu ar nosacījumiem: 1. Jāsākas ar "http://", "www." vai ar abiem. 2. Ja sākās ar "http://", tad to atmet nost. 3. Atdalīt adreses beigu daļu no domēna. (Piemēram: http://php.lv/f/index.php?act=post&do=new_post&f=11 Varētu saīsināt uz: http://php.lv/ ) Tagad man ir tāds kods: preg_replace("/(http:\/\/)?(www\.)?([^\s]*)(\.[a-z]{2,6})([^\s]*)/i", '<a href="http://$2$3$4$5">$2$3$4$5</a>', ''); Problēma ir ar pirmo nosacījumu. Kā varētu uztaisīt, lai ir vai nu viens, otrs vai abi. Tagad ir, ka viens, otrs vai neviens. Trešais nosacījums ir sarežģīts, pašlaik tas strādā ~60% adrešu. Kā varētu uztaisīt, lai tas darbojas kā augstāk minētajā piemērā? Ir ieteikumi kā to realizēt? Varbūt var optimizēt pašreizējos nosacījumus? Paldies jau iepriekš! Link to comment Share on other sites More sharing options...
bubu Posted April 29, 2007 Report Share Posted April 29, 2007 Par pirmo punktu: vajag lietot | simolu: a|b, t.i: preg_replace("/(http:\/\/|www\.)([^\s]*)... Link to comment Share on other sites More sharing options...
andrisp Posted April 29, 2007 Report Share Posted April 29, 2007 Varbūt šis noder -> http://lv2.php.net/parse_url Link to comment Share on other sites More sharing options...
Recommended Posts