praegune kellaaeg 20.06.2025 17:29:26
|
Hinnavaatlus
:: Foorum
:: Uudised
:: Ärifoorumid
:: HV F1 ennustusvõistlus
:: Pangalink
:: Telekavad
:: HV toote otsing
|
|
autor |
|
R A T
HV veteran

liitunud: 21.04.2004
|
14.01.2010 16:15:47
PHP Regular Expression : HELP PLEASE! |
|
|
Tervitus,
Oleks vaja regulaaravaldise juures abi. Ise pole nõnda nutikas nende koostamisel.
Kui mul laetakse teksist selline asi:
Laetud on uus fail: <A HREF="failid/öäüõ.ddoc">failid/öäüõ.ddoc</A> |
Siis oleks vaja see korda saada selliseks
Laetud on uus fail: <A HREF="failid/öäüõ.ddoc">failid/öäüõ.ddoc</A> |
Kuidagi nii peab seda tegema, et ainult HREF= järgnev ära asendataks. Niipalju kui ma olen regulaaridega kokku puutunud, ajab see mind siiani segadusse.
Ehk on teist keegi, kes sellega vupsti valmis saab
Cased saan ma ise tehtud, et millega miski täht asendatakse, just huvitab regulaari osa.
Lisan veel vaidluste vältimiseks, et tegemist EI OLE koolitööga vaid isikliku lehega
Tänud ette!
_________________ Jogani pogani pooh
viimati muutis R A T 14.01.2010 18:02:22, muudetud 1 kord |
|
Kommentaarid: 33 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
1 :: |
31 |
|
tagasi üles |
|
 |
Renka
HV Guru

liitunud: 01.04.2002
|
14.01.2010 16:56:08
|
|
|
R A T, räägi parem miks sa sellist jama üldse teha tahad?
Mulle tundub, et sul on lihtsalt probleem sellega, et veeb on vales kodeeringus vmt?
_________________ There is no place like 127.0.0.1 |
|
Kommentaarid: 71 loe/lisa |
Kasutajad arvavad: |
   |
:: |
2 :: |
1 :: |
61 |
|
tagasi üles |
|
 |
Le Inc
HV Guru

liitunud: 06.09.2002
|
14.01.2010 17:40:58
|
|
|
Kas str_replace ei sobi? See väidetavalt kiirem kui preg_match. Kunagi tegin ühe pisikese funktsiooni:
function tyhik($value) {
return
str_replace(array(" ","Ä","ä","Ö","ö","Õ","õ","Ü","ü"), array("+","%C4","%E4","%D6","%F6","%D5","%F5","%DC","%FC"), $value);
}
|
See oli küll mõeldud URL jaoks, põmst saab sinna igasugu jura kirjutada.
|
|
Kommentaarid: 56 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
54 |
|
tagasi üles |
|
 |
R A T
HV veteran

liitunud: 21.04.2004
|
14.01.2010 18:03:18
|
|
|
Teha tahan seepärast, et varasemast ajast on kasutusel süsteem, mis salvestab lingid täpselt nii, nagu nad ette söödetakse.
Seega hiljem linki echodes tulevad valed HREF-id mis ei vii mitte kusagile. Õige oleks juba lingi sisestamisel need korrigeerida, kuid siis oleks mul ikka sarnasest koodijupist abi
Kui aga enne sisselaadimist toimub eniveis smailide jmt ümbermuutmine IMG-deks, siis saaks ilusti ka lingid seal korda teha.
Kahjuks sai natuke halvasti tehtud lingi sissekanne ja kuva kuid enam seda eriti kerge muuta pole.
Expressioniga saab vahemiku välja juurida kus tähti muudetakse, et vaadataks <A HREF=" ja "> vahele ning just seal muudatused tehtaks.
Le Inc varianti kasutades vahetataks ka lingi tekst välja peale URL-i, pane tähele kus peavad antud tähed jääma:
tsitaat: |
Laetud on uus fail: <A HREF="failid/öäüõ.ddoc">failid/öäüõ.ddoc</A> |
_________________ Jogani pogani pooh |
|
Kommentaarid: 33 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
1 :: |
31 |
|
tagasi üles |
|
 |
Renka
HV Guru

liitunud: 01.04.2002
|
14.01.2010 18:22:11
|
|
|
R A T, võibolla muudad serveri confi nii, et täpitähed URLides ka töötaks hoopis?
Aga kui rääkida Le Inc variandist siis see on ju savi kui tähed seal ära vahetatakse. Brauser kuvab htmlentitied ju ikka korrektsete tähtedena.
_________________ There is no place like 127.0.0.1 |
|
Kommentaarid: 71 loe/lisa |
Kasutajad arvavad: |
   |
:: |
2 :: |
1 :: |
61 |
|
tagasi üles |
|
 |
R A T
HV veteran

liitunud: 21.04.2004
|
14.01.2010 20:03:47
|
|
|
Aha, see on õige tähelepanekt, et brauser asjad õigena kuvab!
Aga serveris ma muudatusi teha ei saa - pole minu võimuses asja konfida.
edit: Aiai, ei kõlba ikka nii, peab avaldisega tegema.
Hetkel on nii, et kui koodis muudetakse tekst ikka "tulen r%E4%E4gin sulle %F6istest %FCleelamistest"-ks, siis nii jääb ta ka outputis näha. Lingid aga töötasid kenasti!
Ma kunagi jamasin ühe teise variandiga, kus mingi päevase jamamise tulemusena suutsin teatud lingid välja otsida selle abil:
$regexp = "<a\s[^>]*href=(\"??)([^\" >]*?)\\1[^>]*>(.*)<\/a>";
Oskab keegi seda ümber teha nõnda, et saaks hrefile järgneva stringi seest case meetodil asju vahetada.
Mul on kuul korralikult koos. Faking regulaaravaldised on ikka kõrgem klass nats
_________________ Jogani pogani pooh |
|
Kommentaarid: 33 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
1 :: |
31 |
|
tagasi üles |
|
 |
andrusny
Kreisi kasutaja

liitunud: 20.03.2006
|
14.01.2010 22:47:38
|
|
|
Ehk proovid JavaScripti? Pane see kood omale lehe lõppu.
var link="";
var tahed = new Array("õ", "ü", "ö", "ä", "Ä", "Ö", "Ü", "Õ");
var vasted = new Array("õ", "ü", "ö", "ä", "Ä", "Ö", "Ü", "Õ");
var lingid = document.getElementsByTagName("a");
for (i=0;i<lingid.length;i++){
link = lingid[i].href;
for(ii=0;ii<7;ii++){
link = link.replace(tahed[ii] , vasted[ii]);
}
lingid[i].href = link;
} |
_________________
 |
|
Kommentaarid: 7 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
7 |
|
tagasi üles |
|
 |
R A T
HV veteran

liitunud: 21.04.2004
|
15.01.2010 01:56:08
|
|
|
Tänud, Javascript on ka muidugi võimalus, ei tulnud selle pealegi.
Kahjuks antud script ei funksi, tegin väikse debugi sisse. Kood on nüüd selline:
<script type="text/javascript">
var linkz="";
var tahed = new Array("õ", "ü", "ö", "ä", "Ä", "Ö", "Ü", "Õ");
var vasted = new Array("õ", "ü", "ö", "ä", "Ä", "Ö", "Ü", "Õ");
var lingid = document.getElementsByTagName("a");
document.write("Total: "+lingid.length);
for (i=0;i<lingid.length;i++){
linkz = lingid[i].href;
document.write("X:"+i+": "+linkz);
for(ii=0;ii<7;ii++){
linkz = linkz.replace(tahed[ii] , vasted[ii]);
}
document.write("=="+linkz+"<br>");
lingid[i].href = linkz;
}
</script> |
Algselt oli probleem "link" variablega, seda ta parsis funktsiooniks.
Edasi leidsin, et nagu mingit effekti ei ole.
Panin document writed vahele, et näha mis toimub ja tulemuseks on ühe lingi puhul näiteks see:
X:34: http://XXXXXXXXXXX/failid/Andre/Suvep%C3%A4evad085.jpg==http://XXXXXXXXXXX/failid/Andre/Suvep%C3%A4evad085.jpg
|
XXXXXXXXXXX=enda huvides removetud aadress.
Eniveis, nagu näha loeb javascript kohe tähed enda jaoks "oigesti" sisse ja seega pole seal midagi muuta mistõttu jääb brauseris (FF 3.6) seis linkide puhul täpselt samaks. Server lükkab 404 ette
Niiet probleem püsib.
12 pointsi efforti eest, aitäh!
_________________ Jogani pogani pooh |
|
Kommentaarid: 33 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
1 :: |
31 |
|
tagasi üles |
|
 |
Le Inc
HV Guru

liitunud: 06.09.2002
|
15.01.2010 11:27:21
|
|
|
Ma saan küll oma php servus sellise jutu html'i koodis:
<form name="kala" method="POST" action="kala.php">
<input type="text" name="lahter1" value="failid/öäüõ.ddoc">
<input type="submit" name="saada" value="Saada">
</form>
Asi: <A HREF="failid/öäüõ.ddoc">failid/öäüõ.ddoc</A>
|
Kasutasin sedasama tyhik funktisooni ...
Kood:
Spoiler 
<?php
function tyhik($value) {
return
str_replace(array("ö","ä","ü","õ"), array("ö","ä","ü","õ"), $value);
}
if (!isset($_POST['lahter1'])) {$_POST['lahter1'] = "";}
echo '
<form name="kala" method="POST" action="kala.php">
<input type="text" name="lahter1" value="'.$_POST['lahter1'].'">
<input type="submit" name="saada" value="Saada">
</form>';
echo 'Asi: <A HREF="'.tyhik($_POST['lahter1']).'">'.$_POST['lahter1'].'</A>';
?>
|
|
|
Kommentaarid: 56 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
54 |
|
tagasi üles |
|
 |
R A T
HV veteran

liitunud: 21.04.2004
|
15.01.2010 12:48:35
|
|
|
Suured tänud, sain asja tööle.
Väga valesti sai ikka asjale lähenetud.
Ma ei tea, miks ma kohe ainult HREF stringis ei toimetanud replacega, olin ikka eriti tumba
Eniveis, lahendasin siis nii:
function fix_url($value) {
return
str_replace(array(" ","Ä","ä","Ö","ö","Õ","õ","Ü","ü"), array("%20","%C4","%E4","%D6","%F6","%D5","%F5","%DC","%FC"), $value);
}
|
ja lingid genereeritakse nüüd nii:
echo "<div id=\"opaquetext\"> <img src=\"".$f_icon."\" width=20 height=20 border=0 alt=\"".$f_path."\"><b>".$f_date."</b> Laetud on uus fail: <A HREF=\"".fix_url($f_path)."\">".$f_path."</A><br></div>";
|
KIITOOOOS
_________________ Jogani pogani pooh |
|
Kommentaarid: 33 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
1 :: |
31 |
|
tagasi üles |
|
 |
andrusny
Kreisi kasutaja

liitunud: 20.03.2006
|
15.01.2010 13:53:57
|
|
|
tsitaat: |
Eniveis, nagu näha loeb javascript kohe tähed enda jaoks "oigesti" sisse |
Ta muudab needära kül, ainult ega sa neid ei näe, kui kuvad browseris välja, sest browser kuvab ka õ asemele õ
Proovisin kõigi browseritega, avab kenasti täpitähtedega linke, nii IE, FF kui Opera. Operas on ka näha, kui viid kursori lingile, siis lingil on sees %C4 %E4 %D6 %F6 tähed. Peale klikki on aadressribal täpitähed aga fail tuleb lahti.
Tore, et probleemi lahendatud said. PHP s on kindlam ka.
_________________
 |
|
Kommentaarid: 7 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
7 |
|
tagasi üles |
|
 |
|
lisa lemmikuks |
|
|
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.
|