Hallo allemaal,
ik ben een en ander aan het proberen kunnen jullie misschien aangeven wat op makkelijkere manieren kan eventueel?

http://northern-internet.com/testenvironment/regular.php

Dat is wat ik deed....


tekst (met haakjes) word
met haakjes

bron:
<?
$var = "tekst (met haakjes) word";
echo $var."<br>";
preg_match("/\((.*)\)/i",$var,$newvar);
//bij een foreach moet je [1] verwijderen en newvar word value<br>
//dan voert het script zowel [0] als [1] uit...
//foreach($newvar as $key => $value){
echo $newvar[1]."<br>";
//}
?>

tekst(methaakjes)word
tekstword

bron:
<?
$var = "tekst (met haakjes) word";
$var = preg_replace("/ /","",$var);
echo $var."<br>";
$newvar = preg_replace("/\((.*)\)/i","",$var);
echo $newvar."<br>";
?>

Voorbeeld met mysql...
Oorspronkelijk: Al Arish, Egypt (AAC)
haakjes verwijderd: Al Arish, Egypt
Explode op komma , alles na de komma pakken [1], voor de komma is [0] uiteraard: Egypt
zoals hierboven WEL gedaan een eventuele trim op spaties te verwijderen

bron:
<?
mysql_connect("localhost","user","pass");
mysql_select_db("database");
$query = mysql_query("SELECT * FROM plaatsen WHERE id = '1070'");
//numeriek id, deze is willekeurig
while($res = mysql_fetch_array($query)){
echo "Oorspronkelijk: <strong>".$res['bestemming']."</strong><br>";
$newvar = preg_replace("/\((.*)\)/i","",$res['bestemming']);
echo "haakjes verwijderd: <strong>".$newvar."</strong><br>";
$nieuwervar = explode(',',$newvar);
echo "Explode op komma , alles na de komma pakken [1], voor de komma is [0] uiteraard: <strong>".trim($nieuwervar[1])."</strong><br>";
echo "zoals hierboven WEL gedaan een eventuele trim op spaties te verwijderen<br>";
}
?>
Wat ik met bovenstaande code kan?
A: In een ander veld van de tabel de IATA die tussen haakjes staat plaatsen
B: In een ander veld van de tabel de naam van het bijbehorende land plaatsen

EINDE REGULAR OEFENING


Ik dacht dat het eventueel mogelijk moet zijn om
$var = preg_replace("/ /","",$var);
te vereenvoudigen, kan me herinneren dat er een functie is die spaties verwijderd maar kon hem niet vinden...

edit: trim

Nu heb ik echt iets nodig: een (voorzover bestaande) functie om 2 hoofdletters achter elkaar op te sporen en zonodig er iets mee te doen...
de functie die je bedoeld is waarschijnlijk trim() maar die haalt de spaties aan het begin en eind van een string weg..
Je hebt gelijk!
Dat is in dit geval juist goed, want voorbeeld:
Al Ain, United Arab Emirates (AAN)
word dan:
United Arab Emirates
met spaties aan het begin en eind, als hij alle spaties zou weghalen word het lelijk:
UnitedArabEmirates
trim laat spaties er tussen mooi staan, handig :)
nu nog de hoofdletters opsporen :)
Wat wil je met de hoofdletters? Allemaal eruit? ([php]strtolower[/php]) Elk woord met een hoofdletter beginnen? ([php]ucfirst[/php])
Nou kijk
Paris, France (PRS) is een voorbeeld van internationale gegeven.
Ik heb echter ook:
Missouri, AK (MSR)
AK is naam van amerikaanse staat, ik wil alles wat met 2 hoofdletters is (alle rows met een amerikaanse staat dus) vervangen door United States of America
Zoiets?
<?php
$sString = 'Missouri, AK (MSR)';
$sString = preg_replace('#\b[A-Z]{2}\b#', 'United States of America', $sString);
echo $sString;
?>

Reageren