/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
regex..
Fra : Jan Kristensen


Dato : 19-04-05 10:50

Hej..

Vil lige høre om der ikke er en den kan hjælpe med at knække denne.!

Skal parse nogne email's hentet med php imap klienten.! Og skal erstatte
nogle links i disse emails.!
Problemet er at jeg kan ikke stole på hvor i mine strenge der er en new
line.!

eks..
<a href="test.php?test=[REPLACE_THIS]">test link</a>

skal findes og erstattes af noget andet..! Men da der jo sagtens kan være 50
tegn før < kan denne linie blive delt op.!

eks.
(48 tegn)<a href="test.php?test=[REP
ACE_THIS"]">test link</a>

Og så kan jeg ikke finde løsningen på at få erstattet [REPLACE_THIS] med
preg_match ..

nogle gode ideer..!

---
Jan Kristensen



 
 
Morten Toft (19-04-2005)
Kommentar
Fra : Morten Toft


Dato : 19-04-05 14:34

str_replace ($forekomst, $erstatning, $streng)

"Jan Kristensen" <jan.kristensen@besked.com> skrev i en meddelelse
news:4264d443$0$274$edfadb0f@dread12.news.tele.dk...
> Hej..
>
> Vil lige høre om der ikke er en den kan hjælpe med at knække denne.!
>
> Skal parse nogne email's hentet med php imap klienten.! Og skal erstatte
> nogle links i disse emails.!
> Problemet er at jeg kan ikke stole på hvor i mine strenge der er en new
> line.!
>
> eks..
> <a href="test.php?test=[REPLACE_THIS]">test link</a>
>
> skal findes og erstattes af noget andet..! Men da der jo sagtens kan være
50
> tegn før < kan denne linie blive delt op.!
>
> eks.
> (48 tegn)<a href="test.php?test=[REP
> ACE_THIS"]">test link</a>
>
> Og så kan jeg ikke finde løsningen på at få erstattet [REPLACE_THIS] med
> preg_match ..
>
> nogle gode ideer..!
>
> ---
> Jan Kristensen
>
>



Jan Kristensen (20-04-2005)
Kommentar
Fra : Jan Kristensen


Dato : 20-04-05 06:56

> str_replace ($forekomst, $erstatning, $streng)

Desvære ikke. Den kan jo ikke søge multiline.. Har prøvet.

---
Jan Kristensen




Morten Toft (22-04-2005)
Kommentar
Fra : Morten Toft


Dato : 22-04-05 09:20

Jo da...med "\r\n" i din forekomst kan den sagtens.

Når den nu kan stå forskelligt fra mail til mail kunne du køre den igennem
med en løkke. Så du tjekker efter linieskiftet forekommer.

"Jan Kristensen" <jan.kristensen@besked.com> skrev i en meddelelse
news:4265eeec$0$199$edfadb0f@dread12.news.tele.dk...
> > str_replace ($forekomst, $erstatning, $streng)
>
> Desvære ikke. Den kan jo ikke søge multiline.. Har prøvet.
>
> ---
> Jan Kristensen
>
>
>



Thomas Jari (20-04-2005)
Kommentar
Fra : Thomas Jari


Dato : 20-04-05 08:18

On Tue, 19 Apr 2005 11:49:56 +0200, "Jan Kristensen"
<jan.kristensen@besked.com> wrote:

>Hej..
>
>Vil lige høre om der ikke er en den kan hjælpe med at knække denne.!
>
>Skal parse nogne email's hentet med php imap klienten.! Og skal erstatte
>nogle links i disse emails.!
>Problemet er at jeg kan ikke stole på hvor i mine strenge der er en new
>line.!
>
>eks..
><a href="test.php?test=[REPLACE_THIS]">test link</a>
>
>skal findes og erstattes af noget andet..! Men da der jo sagtens kan være 50
>tegn før < kan denne linie blive delt op.!
>
>eks.
>(48 tegn)<a href="test.php?test=[REP
>ACE_THIS"]">test link</a>
>
>Og så kan jeg ikke finde løsningen på at få erstattet [REPLACE_THIS] med
>preg_match ..

$streng = preg_replace("nyt", "gammelt", $streng);

Kan det bruges?
--
Mvh
Thomas Jari
Alt Webdesign I/S
http://www.altwebdesign.dk

Jan Kristensen (20-04-2005)
Kommentar
Fra : Jan Kristensen


Dato : 20-04-05 20:55

>><a href="test.php?test=[REPLACE_THIS]">test link</a>
>>
>>skal findes og erstattes af noget andet..! Men da der jo sagtens kan være
>>50
>>tegn før < kan denne linie blive delt op.!
>>
>>eks.
>>(48 tegn)<a href="test.php?test=[REP
>>ACE_THIS"]">test link</a>
>>
>>Og så kan jeg ikke finde løsningen på at få erstattet [REPLACE_THIS] med
>>preg_match ..
>
> $streng = preg_replace("nyt", "gammelt", $streng);

Det er muligt at jeg ikke har forklaret det godt nok..! Jeg har prøvet med
disse. Og ingen af dem virker, men giver sikkert en bedere ide om hvad det
er jeg skal have gjort..!

$email_data = preg_replace("/(%5b|[)REPLACE_THIS(%5d|])/", $new_string,
$email_data)
- Denne virker hvis jeg er 100% sikker på at hele den streng jeg skal have
erstattet står på en (1) linie.!

$email_data = preg_replace("/(%5b|[)(.*?)(%5d|])/", $new_string,
$email_data)
- Denne virker (næsten) problemet er at der er mere end en streng der skal
erstattes, og sef. af forskellige variabler.!

$email_data = str_replace("[REPLACE_THIS]", $new_string, $email_data)
- Denne er også ok, hvis jeg kunne være 100% på at det stod på en (1)
linie.!

Næste problem er så måske IMAP formatet af emailen.. "=\r\n" er en newline,
men de er ret nemme at lave om.! Det kan selv jeg regne ud.!

Det hele falder på at IMAP / Email serveren / Outlook eller hvad ved jeg.!
Deler ALLE linier op ved 75 chars.! Og er ret lige glad med om der bliver
delt midt i et ord eller en variabel.!
Altså kan jeg sagtens opleve at den sa***s newline forekommer midt i min
streng, men dog også at det ikke er samme sted hver gang. alt erfter indhold
af emai'en.

Håber det kaster lidt mere lys over problemet ! Og at der er en der kan
hjælpe med at knække det !

---
Jan Kristensen



Martin (21-04-2005)
Kommentar
Fra : Martin


Dato : 21-04-05 07:33

> Det hele falder på at IMAP / Email serveren / Outlook eller hvad ved jeg.!
> Deler ALLE linier op ved 75 chars.! Og er ret lige glad med om der bliver
> delt midt i et ord eller en variabel.!
> Altså kan jeg sagtens opleve at den sa***s newline forekommer midt i min
> streng, men dog også at det ikke er samme sted hver gang. alt erfter indhold
> af emai'en.

Måske du kunne fjerne /r/n først i variablen og kører en str_replace
(you-name-it) på den ?

Søg
Reklame
Statistik
Spørgsmål : 177501
Tips : 31968
Nyheder : 719565
Indlæg : 6408527
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste