Avatar billede kodak Mester
28. oktober 2022 - 21:45 Der er 6 kommentarer

php function

jeg har samlet følgendene, men vil høre om nogen kan lave det om til en function i stedet:
[code]

$haystack = $_REQUEST['hay'];
$start_with_1  = '<';
$start_with_2  = '[';
$stops_with_1  = '>';
$stops_with_2  = ']';


if (strpos($haystack, $start_with_1) !== false) {
} else {
    if (strpos($haystack, $start_with_2) !== false) {
    } else {
        $haystack = '['.$haystack.'';
    }
}
if (strpos($haystack, $stops_with_1) !== false) {
} else {
    if (strpos($haystack, $stops_with_2) !== false) {
    } else {
        $haystack = ''.$haystack.']';
    }
}
[/code]

den får en value som kan være i flere formater,
er den ikke det laver den det selv om til det ene format

$haystack = '[23]; // skal den ikke røre
$haystack = '<23>; // skal den ikke røre
$haystack = '23; // skal den lave om til [23]
Avatar billede arne_v Ekspert
28. oktober 2022 - 23:13 #1
Regex var måske nemmere.

Demo:

<?php

function repl($s) {
    if(preg_match('/\[.*\]/', $s) || preg_match('/\<.*\>/', $s)) {
        return $s;
    } else {
        return '[' . $s .']';
    }
}

echo repl('[23]') . "\r\n";
echo repl('<23>') . "\r\n";
echo repl('23') . "\r\n";

?>
Avatar billede kodak Mester
29. oktober 2022 - 00:04 #2
hvad er Regex?

kan man tilføje muligheden for text efter ']' på en eller anden måde eks.: '[23] OK'
Avatar billede arne_v Ekspert
29. oktober 2022 - 00:29 #3
regex = regular expressions
et mønster genkendelses sprog som vistnok stammer fra AWK og Perl
https://en.wikipedia.org/wiki/Regular_expression
Avatar billede arne_v Ekspert
29. oktober 2022 - 00:32 #4
[23] OK -> [23] OK
<23> OK -> <23> OK
23 OK -> [23] OK

?

Vil det første altid være et enkelt tal?
Avatar billede kodak Mester
29. oktober 2022 - 00:47 #5
Ja det første vil altid være et tal
Avatar billede arne_v Ekspert
29. oktober 2022 - 01:06 #6
<?php

function repl($s) {
    if(preg_match('/^\[\d+\].*$/', $s) || preg_match('/^\<\d+\>.*$/', $s)) {
        return $s;
    } else {
        return preg_replace('/(\d+)(.*)/', '[$1]$2', $s);
    }
}

echo repl('[23] OK') . "\r\n";
echo repl('<23> OK') . "\r\n";
echo repl('23 OK') . "\r\n";

?>
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

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