Stuk uit songtitel verwijderen met php
Voor een radiostation is mij gevraagd naar een oplossing te zoeken om de songtitels in te korten. Ik zal een voorbeeld geven hoe deze ineen steekt.
Madonna - Feels like a prayer (madhouse remix)
Nu is het de bedoeling dat alles dat tussen haakjes staat (soms ook andere tekens) niet meer zichtbaar is op de website zodat de layout dan niet telkens uiteen wordt getrokken. We kunnen ook alle nummers nalopen (+/- 20000 verschillende) maar dat is onbegonnen werk.
Nu dacht ik dat met php ook zoiets kon. Iemand een idee hoe dit uit te voeren?
Bij voorbaat dank,
Ronald Broos
dus:
Madonna - Feels like a prayer (madhouse remix)2010
Dan komt 2010 er niet meer achter te staan. Hoe krijg ik er dat dan achter zonder (madhouse remix)?
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<?php
$string = 'Madonna - Feels like a prayer (madhouse remix) 2010';
$string = preg_replace('_^([^\(]+)(\([^\)]+\))([^\(]*)$_', '$1 $3', $string);
echo $string;
?>
$string = 'Madonna - Feels like a prayer (madhouse remix) 2010';
$string = preg_replace('_^([^\(]+)(\([^\)]+\))([^\(]*)$_', '$1 $3', $string);
echo $string;
?>
Echter wil de refresh nu niet meer werken...
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<?
$open = fsockopen("91.121.117.158","8320");
if ($open) {
fputs($open,"GET /7.html HTTP/1.1\nUser-Agent:Mozilla\n\n");
$read = fread($open,1000);
$text = explode(",",$read);
$text = $text[6];
} else { $text="Server Offline, Please try again later"; } ?>
<?
$string = $text;
$string = preg_replace('_^([^\(]+)(\([^\)]+\))([^\(]*)$_', '$1 $3', $string);
?>
<html>
<head>
<meta http-equiv="refresh" content="15;URL=nummer2.php">
</head>
<body>
<?
echo $string;
?>
</body>
</html>
$open = fsockopen("91.121.117.158","8320");
if ($open) {
fputs($open,"GET /7.html HTTP/1.1\nUser-Agent:Mozilla\n\n");
$read = fread($open,1000);
$text = explode(",",$read);
$text = $text[6];
} else { $text="Server Offline, Please try again later"; } ?>
<?
$string = $text;
$string = preg_replace('_^([^\(]+)(\([^\)]+\))([^\(]*)$_', '$1 $3', $string);
?>
<html>
<head>
<meta http-equiv="refresh" content="15;URL=nummer2.php">
</head>
<body>
<?
echo $string;
?>
</body>
</html>
Gebruik [.code][./code] tags om je code overzichtelijk weer te geven![/modedit]
Gewijzigd op 06/06/2010 16:45:45 door Joren de Wit
Verder geeft het wellicht nog niet het gewenste resultaat, maar dat komt omdat er een loze ( in de titel staat die niet afgesloten wordt.
En dan doet de refresh het wel bij jou? Dwz dat er naar verloop van tijd een nieuwe titel verschijnt?
Jep...
Hoe ziet dat er dan uit Karl?
Code (php)
Ik houd er geen rekening mee dat je soms nog eens +1 moet doen omdat een string op nul begint ofzo, en ik houd ook geen rekening met de efficiëntie, je hoeft natuurlijk iets niet meerdere malen uit te rekenen, je kunt natuurlijk ook die ) vanaf de ( berekenen, foutafhandeling ontrbeekt ook (wat als die tekens niet in de string zitten?), en ik weet niet of het werkt. Zoiets zou het denk ik moeten zijn. Kijk zelf ook even op php.net naar de functies voor hoe en wat e.d.
Slaap lekker.