Avatar billede engberg Juniormester
22. maj 2004 - 22:44 Der er 16 kommentarer og
1 løsning

Lave lighedstegn og mellemrum om til ingenting.

Jeg har en tekststreng der kunne se således ud:

"Så skal jeg ellers love for, at taget fik en ordentlig tur. Kemisk tag= rens som skulle kunne fjerne algerne på 2-3 måneder.."

Jeg vil gerne have det der "= " væk, så jeg prøvede:

    $tekst = str_replace ("= ","", $tekst);

Men det reagerer den slet ikke på... måske er mellemrummet bagefter slet ikke et almindeligt mellemrum???
Teksten er taget ud fra en e-mail fra en mobiltelefon..
Avatar billede krydset Nybegynder
22. maj 2004 - 22:47 #1
$tekst = "Så skal jeg ellers love for, at taget fik en ordentlig tur. Kemisk tag= rens som skulle kunne fjerne algerne på 2-3 måneder..";

$tekst = str_replace ("=","", $tekst);
$tekst = str_replace (" ","", $tekst);

echo $tekst;
Avatar billede krydset Nybegynder
22. maj 2004 - 22:50 #2
hmm fik lige set at det kun er "= " den skal fjerne, mit fjerner alt sammen

der skal du nok have fat i regxp, men dem er jeg ikke så hård håber der kommer en anden :-P

//Krydset
Avatar billede engberg Juniormester
22. maj 2004 - 23:17 #3
Jeg tror at din løsning vil gøre det samme som min.. plus at den vil fjerne ALLE mellemrum i min tekst... det kan jeg desværre ikke bruge til noget :-/
Avatar billede mike_mike Nybegynder
22. maj 2004 - 23:35 #4
Måske ikke den kønneste løsning men den virker. Og så er det ovenikøbet lidt sjovt at lege med en funktion som hedder explode() ;)

<?php

$tekst="Så skal jeg ellers love for, at taget fik en ordentlig tur. Kemisk tag= rens som skulle kunne fjerne algerne på 2-3 måneder..";
$tekstdele=explode("=", $tekst);          //spræng teksten i stumper idet alle = fjernes
$antaldele=count($tekstdele);             //tæl hvor mange dele teksten er sprængt i
$nytekst="";                             //initier en variabel. ved ikke om den er nødvendig.
for ($i=0;$i<$antaldele;$i=$i+1){
    $nytekst=$nytekst.$tekstdele[$i];  //hver bid limes sammen til en ny sætning
}
echo $nytekst;

?>

Er testet og virker.
Håber det hjalp dig...
Avatar billede squashguy Nybegynder
22. maj 2004 - 23:40 #5
du kan også bruge et regulært udtryk. \s snupper alle whitespace tegn, mellemrum, tab, etc

$tekst = preg_replace("/=\s/", "", $tekst);
Avatar billede engberg Juniormester
22. maj 2004 - 23:58 #6
Ahh... måske har jeg ikke gjort det helt klart.. tagrens er i et ord.... :-/
Jeg prøvede ellers at skrive "= " i spørgsmålet, men mellemrummet er jo ikke så nemt at se... :-)
Måske derfor virker ingen af jeres ellers glimrende idéer..
Avatar billede mike_mike Nybegynder
23. maj 2004 - 00:06 #7
Jamen løsningen er ligetil det eneste du skal ændre er

$tekstdele=explode("= ", $tekst); <-- hvor mellemrummet også er med.


Samlet kode:

<?php

$tekst="Så skal jeg ellers love for, at taget fik en ordentlig tur. Kemisk tag= rens som skulle kunne fjerne algerne på 2-3 måneder..";
$tekstdele=explode("= ", $tekst);          //spræng teksten i stumper idet alle = fjernes
$antaldele=count($tekstdele);            //tæl hvor mange dele teksten er sprængt i
$nytekst="";                            //initier en variabel. ved ikke om den er nødvendig.
for ($i=0;$i<$antaldele;$i=$i+1){
    $nytekst=$nytekst.$tekstdele[$i];  //hver bid limes sammen til en ny sætning
}
echo $nytekst;

?>

:)
Avatar billede dennismp Nybegynder
23. maj 2004 - 02:56 #8
Var det ikke nemmere at undersøge hvad det er for et tegn der kommer efter =?
Avatar billede coderdk Praktikant
23. maj 2004 - 03:25 #9
hamderpolle har svaret ;) jeg ville dog lave den sådan: $tekst = preg_replace('/=\s+/s','',$tekst);
Avatar billede engberg Juniormester
23. maj 2004 - 12:34 #10
Jeg tror dennismp er inde på det rigtige, for det er vist ikke et almindeligt mellemrum - så ville mit oprindelige forsøg jo virke...
Avatar billede dennismp Nybegynder
23. maj 2004 - 12:38 #11
prøv evt:

$text = teksten fra en mobiltelefon...

for($i=0;$i<strlen($text);$i++) {
  print "{$text{$i}} = " . ord($text{$i}) . "<br>";
}

Så kan du se hvilken ascii-værdi hver karakter har. Så burde du kunne se om det er et mellemrum eller ej.
Avatar billede Slettet bruger
23. maj 2004 - 21:39 #12
Mon ikke det er denne, du leder efter?

$tekst=quoted_printable_decode($tekst);
Avatar billede sostack Nybegynder
25. maj 2004 - 07:53 #13
$tekstdele=explode("= ", $tekst);
foreach($tekstdele as $stumper)
{
echo $stumper;
}
//sostack
Avatar billede engberg Juniormester
25. maj 2004 - 16:28 #14
Sandbox>> Du er hermed udnævnt til min php-guru ;-)
- hvor meget laver den om? Kan jeg undvære disse linier:

    $tekst = str_replace ("=C3=A6","æ", $tekst);
    $tekst = str_replace ("=C3=B8","ø", $tekst);
    $tekst = str_replace ("=C3=A5","å", $tekst);

    $tekst = str_replace ("=C3=86","Æ", $tekst);
    $tekst = str_replace ("=C3=98","Ø", $tekst);
    $tekst = str_replace ("=C3=85","Å", $tekst);

    $tekst = str_replace ("=?UTF-8?Q?","", $tekst);
    $tekst = str_replace ("_"," ", $tekst);
    $tekst = str_replace ("?=","", $tekst);
Avatar billede Slettet bruger
25. maj 2004 - 16:36 #15
Jeg er ikke sikker på formålet med de to sidste, men alle de andre skulle du roligt kunne droppe. (Jeg tror også de to sidste bliver fikset af quoted_printable_decode.)

Bemærk dog, at du tilsyneladende får teksten som UTF-8, så hvis din side er sat til iso-8859-1 eller lignende, vil æøå se mærkelige ud. Det kan ordnes ved at køre gennem utf8_decode(), hvis quoted_printable_decode() ikke gør det.
Avatar billede engberg Juniormester
27. maj 2004 - 08:22 #16
Merci beaucoup :-)
Smid lige et svar :-)
Avatar billede Slettet bruger
27. maj 2004 - 13:35 #17
Javel, det kommer her.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester