in php

2017-10-09 1 views
-4

Ich habe eine Zeichenfolge, die wie folgt aussieht:in php

$string = 'helloWorldAndStackOverflow'; 

Ich will es Ende mit:

$string = 'hello.world.and.stack.overflow'; 

Also, wo ich einen Großbuchstaben haben sollte prepend ein . Zeichen. Dann kann ich strtolower auf die ganze Sache verwenden.

Wie kann ich den Punkt vorgeben?

+3

Fügen Sie den Code, die Sie – Thamilan

+0

versucht, Sie müssen etwas richtig versucht haben ?? Ich würde entweder 'preg_match_all' oder' strpbrk' verwenden. – Akintunde007

+1

Verwenden Sie ['preg_replace()'] (http://php.net/manual/en/function.preg-replace.php). – axiac

Antwort

4

Sie können preg_replace verwenden, um die uppercase zu identifizieren und diese zu ersetzen.

$string = 'helloWorldAndStackOverflow'; 
$string = preg_replace('/([A-Z])/', '.$1', $string); 

Danach kann man einfach strtolower

$string = strtolower($string); 

diesen Fall in der unteren zu konvertieren verwenden.

+1

Um die Zeichenkette "Kleinbuchstaben" hinzuzufügen, können Sie hinzufügen: 'strtolower()': '$ string = 'helloWorldAndStackOverflow'; $ string = preg_replace ('/ ([A-Z]) /', '. $ 1', $ string); $ string = strtolower ($ string); ' – vstelmakh

+2

ja, ich habe das nicht in Antwort geschrieben, weil es ziemlich einfach ist. – urfusion

1

können Sie preg_replace_callback für ersetzen verwenden. versuchen Code unten,

<?php 
$string = 'helloWorldAndStackOverflow'; 
$dottedString = preg_replace_callback('/[A-Z]/', function($matches){ 
    return $matches[0] = '.' . ucfirst($matches[0]); 
}, $string); 
echo $dottedString; 
?>