2013-04-24 1 views
0

Мне интересно, как манипулировать отдельными символами в строке в PHP. Я искал все и не могу найти ничего, что отвечает на этот вопрос. Я хочу взять строку, представленную с использованием формы ввода, которая, например, говорит «это предложение», а затем создает вывод, который принимает первый символ каждого слова и помещает его в конец этого слова: «hist si a entences ". Я предполагаю, что первым шагом было бы взять строку и превратить ее в массив с помощью explode(), но я действительно запутался в том, как выполнять фактические манипуляции? Любая помощь здесь была бы замечательной! Спасибо!Манипулирование отдельными строками на основе символов из ввода в PHP

ответ

1

Вы должны смотреть в preg_match с использованием регулярных выражений: http://php.net/manual/en/function.preg-match.php

Затем вы можете хранить свои матчи в массив и манипулировать строки.

$string = "this is a sentence"; 

$regex = '/<insert regex here>/'; // Regex expert edit here please 

preg_match($regex, $string, $matches) 
// Uses regex against string and stores matches 
// into $matches <-- that is optional but in your case you want to use it for manipulation 

var_dump($matches); // Play with results 
+0

Я должен был быть более четкое представление о исходной строки - я хочу чтобы сделать это через входную форму, поэтому функция должна была бы иметь возможность принимать любую комбинацию слов и брать первую букву и ставить ее в конце, вместо того, чтобы просто заменить все само слово? Я отредактирую вопрос, чтобы сделать это более ясным. – hayleyelisa

+0

Является ли это, когда пользователь печатает или после отправки формы? Все, что вам нужно сделать, это запустить регулярное выражение против представленного значения (например, '$ _POST ['usrInput']'), чтобы получить ваши письма, с которыми вы хотите управлять своей строкой, и оттуда ... –

+0

Правильно, я был немного смущен , но я понимаю сейчас. Спасибо! – hayleyelisa

1

Я знаю регулярные выражения должны быть путь, но я только что нашел этот интересный, так что здесь идет:

$string = "this is a sentence"; 
    $stringArray = explode(" ", $string); 

    $messedSentence = ""; 
    foreach($stringArray as $word) 
    { 
     $word = trim($word); 
     $firstChar = substr($word,0,1); 
     $lastChar = substr($word,strlen($word)-1,1); 
     $restOfWord = substr($word,1,strlen($word)-2); 

     if(trim($word)) 
     { 
      $messedSentence .= (strlen($word)==1)?$firstChar." ":$lastChar.$restOfWord.$firstChar. " "; 
     } 
    } 

    echo $string ." becomes: ".$messedSentence; 
Смежные вопросы