Jump to content
php.lv forumi

Adreses mainīgā mainīšana ar preg_replace


azpage

Recommended Posts

Nav teicamas zināšanas preg funkciju nosacījumu veidošanā. Pūlējos ilgi, bet rezultātā dažādos variantos parādās nepilnības, nestrādā funkcija kā vajag.

Nepieciešams:

Funkcija, kurai nodod interneta adresi, mainīgā nosaukumu un tā jauno vērtību. Funkcijai ir jāizmaina adresē tas mainīgais ar jauno vērtību, ja nav tāda, tad pievienotu.

 

Nesanāk samainīt mainīgā vērtību, ir gadījumi, kad strādā kur maināmais mainīgais atrodas pašās beigās (aiz tā neseko neviens "&" simbols), taču tad nestrādā kad ir tas simbols.

 

Mans pēdējais variants.

 

$res = preg_replace('/(\?|&)(' . $name . '=)([^&|\n]*)/', '\1\2' . $value . '', $url)

 

Nestrādā tā beigu daļa, viņam būtu jāiet līdz rindas beigām, vai līdz atrod simbolu "&" un to daļu tad no "=" samaina pret jauno vērtību.

Ar $_GET neder, jo ir nepieciešamība apstrādāt vienu linku vairākas reizies.

Link to comment
Share on other sites

Njee, ar to viss ir kartiibaa.

 

Piemērs:

 

Shadu vertibu nodod funkcijai http://adrese.lv/index.php?aaa=100&bbb=200&ccc=vertiba, kur "bbb" jasamaina pret "400"

 

Jaiegust taatad: http://adrese.lv/index.php?aaa=100&bbb=400&ccc=vertiba

 

taa izteiksme ieksh preg_replace visu pareizi atrod liidz "...bbb=", bet taalaak ir jaanosaka, ka jamaina ir taa dalja, kas ir liidz "&ccc=vertiba". Taapat arii ir jasamaina, ja mainu mainiigo "ccc" uz "citavert", tachu tur ir jameklee lidz rindas beigaam.

 

Viens no tiem variantiem man sanaak, meginaju visadus variantus, tad viens, tad otrs variants, bet abi nesanaak

Link to comment
Share on other sites

Es gan šādai vajadzībai pārlasu GET masīvu un linku veidoju pa jaunu, ņemot vērā to, kas man tajā jāizmaina.

Elementāra funkcija, kurai tiek padots kā parametrs masīvs ar maināmajiem GET parametriem un to vērtībām...

Link to comment
Share on other sites

Es gan šādai vajadzībai pārlasu GET masīvu un linku veidoju pa jaunu, ņemot vērā to, kas man tajā jāizmaina.

Elementāra funkcija, kurai tiek padots kā parametrs masīvs ar maināmajiem GET parametriem un to vērtībām...

 

Tas noder tad, ja zin, ka linkam vajadzes mainiit vienu vai vairakus mainiigos vienaa vietaa, bet ja tas var mainiities vairaakas vietaas visas web-lapas izpildes laikaa, tad tas neder, jo tad speekaa nepaliek iepriekshejas veertiibas.

 

bubu, paldies, Tavs variants der

Link to comment
Share on other sites

×
×
  • Create New...