Avaleht
uus teema   vasta Tarkvara »  Programmeerimine »  PHP preg_replace href väärtus märgi kõik teemad loetuks
märgi mitteloetuks
vaata eelmist teemat :: vaata järgmist teemat
Hinnavaatlus :: Foorum :: Uudised :: Ärifoorumid :: HV F1 ennustusvõistlus :: Pangalink :: Telekavad :: HV toote otsing
autor
sõnum Saada viide sõbrale.  :: Teata moderaatorile teata moderaatorile
otsing:  
raido357
HV veteran

liitunud: 26.09.2002




sõnum 21.01.2011 12:25:53 PHP preg_replace href väärtus vasta tsitaadiga

Tere,

ehk keegi oskab koostada regulaaravaldise, mis asendaks html stringis järgneval kujul lingid:

1. <a href="?LangID=1&CatID=2" siinehkveelmidagi>Minu link 1</a>

kujule --> <a href="minu-link1/2" siinkahveelmidagi>Minu link 1</a>

Tänud!
Kommentaarid: 78 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 70
tagasi üles
vaata kasutaja infot saada privaatsõnum
airm
HV Guru

liitunud: 26.02.2003




sõnum 21.01.2011 12:56:34 vasta tsitaadiga

sul on vaja tegelikult ainult kaks stringiasendust:
"?LangID=" => "minu-link"
ja
"&CatID=" => "/"
Kommentaarid: 56 loe/lisa Kasutajad arvavad:  :: 2 :: 1 :: 50
tagasi üles
vaata kasutaja infot saada privaatsõnum
raido357
HV veteran

liitunud: 26.09.2002




sõnum 21.01.2011 13:19:51 vasta tsitaadiga

airm kirjutas:
sul on vaja tegelikult ainult kaks stringiasendust:
"?LangID=" => "minu-link"
ja
"&CatID=" => "/"


Nojah, CatID asenduse saab küll nii teha aga LangID asendus minu lingiga ei saa antud rakenduse juures.

Üks tükk HTML stringi hoitakse massiivis, nüüd on vaja kogu selle html stringi ulatuses leida 1. kujul lingid, nendest samadest linkidest matchida välja CatID ja <a>siinVahel</a> olev tekst. Seejärel see "siinVahel" olev tekst lisada lingi algusesse.

$html = 'html html html <a href="?LangID=1&CatID=25">Minu link 1</a> html html html content';

Tulemuseks vaja saada:

$html = 'html html html <a href="minu-link1/25">Minu link 1</a> html html html content';

ja EN keele puhul

$html = 'html html html <a href="en/minu-link1/25">Minu link 1</a> html html html content';

Näiteks.

Edit: Kui kellelgi head suhted regulaaravaldistega ja viitsib vaeva näha, siis ootan lahendust endiselt.

Hetkel aga lähen mugavamat teed ja kasutan PHP Simple HTML DOM Parserit.
Kommentaarid: 78 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 70
tagasi üles
vaata kasutaja infot saada privaatsõnum
airm
HV Guru

liitunud: 26.02.2003




sõnum 21.01.2011 13:55:45 vasta tsitaadiga

Kogu porr on see, et sa muudad olemasolevat html -i.
Väga vähesed teevad seda.
Tehnoloogia on ikka sinnapoole, kus seda genereeritakse, mitte ei muudeta valmis html -i väljundit
Kommentaarid: 56 loe/lisa Kasutajad arvavad:  :: 2 :: 1 :: 50
tagasi üles
vaata kasutaja infot saada privaatsõnum
Timukas0
HV kasutaja
Timukas0

liitunud: 20.03.2007




sõnum 21.01.2011 14:29:39 vasta tsitaadiga

Midagi sellist?
php:
  1. <?php
  2. $html = 'html html html <a href="?LangID=1&CatID=25">Minu link 1</a> html html html content';
  3. $newHtml = preg_replace_callback('/<a href="\?LangID=(.*?)&CatID=(.*?)">(.*?)<\/a>/', function($matches) {
  4.     $link = '';
  5.    
  6.     //keele valik
  7.     if ($matches[1] == 2) {
  8.         $link .= 'en/';
  9.     }
  10.    
  11.     $link .= strtolower(str_replace(' ', '-', $matches[3])) . '/' . $matches[2]; //vajadusel asenda viimane -
  12.    
  13.     return '<a href="' . $link . '">' . $matches[3] . '</a>';
  14. }, $html);
  15.  
  16. echo $newHtml;
Kommentaarid: 3 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 3
tagasi üles
vaata kasutaja infot saada privaatsõnum
raido357
HV veteran

liitunud: 26.09.2002




sõnum 21.01.2011 15:39:11 vasta tsitaadiga

airm kirjutas:
Kogu porr on see, et sa muudad olemasolevat html -i.
Väga vähesed teevad seda.
Tehnoloogia on ikka sinnapoole, kus seda genereeritakse, mitte ei muudeta valmis html -i väljundit


No oleks tore jah, paraku ei ole see otstarbekas. Kui saaks algset asja näpuvajutusega muuta, oleks asi ammu tehtud. Paraku ei ole mõtet ressurssi kulutada sellele, lihtsam on pärast htmli muuta.

Timukas0, väga viis, minu poolt teema lõpetatud. thumbs_up.gif
Kommentaarid: 78 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 70
tagasi üles
vaata kasutaja infot saada privaatsõnum
näita postitusi alates eelmisest:   
uus teema   vasta Tarkvara »  Programmeerimine »  PHP preg_replace href väärtus
[vaata eelmist teemat] [vaata järgmist teemat]
 lisa lemmikuks
näita foorumit:  
 ignoreeri teemat 
sa ei või postitada uusi teemasid siia foorumisse
sa ei või vastata selle foorumi teemadele
sa ei või muuta oma postitusi selles foorumis
sa ei või kustutada oma postitusi selles foorumis
sa ei või vastata küsitlustele selles foorumis
sa ei saa lisada manuseid selles foorumis
sa võid manuseid alla laadida selles foorumis



Hinnavaatlus ei vastuta foorumis tehtud postituste eest.