←  Pytania

AMXX.pl: Support AMX Mod X i SourceMod

»

PHP
Usunięcie ciągu znaków, jeżeli istnieje.

ogury's Photo ogury 31.01.2012

Spoiler

Jeżeli ktoś by mógł, to prosiłbym o zaimplementowanie czegoś takiego, że
-jeżeli serwer posiada w nazwie nazwę hostingu (ew. @ *, @* (gdzie * to dowolny ciąg znaków), to go usuwa. Najlepiej, abym sam mógł napisać nazwę wykluczonych rzeczy.
Po prostu, tak:
Nazwa serwera: Serwer @ hosting.pl
Na statusie ma sie wyświetlać tak: Serwer
Z góry dzięki.

Edit:
2. Jeżeli cała nazwa się nie mieści na obrazku, to po x znakach dodaje się ...

ref
Quote

ogury's Photo ogury 31.01.2012

$str = str_replace("@ Zabijaka.pl", "", $hostname, $count);
Tak zadziała? Gdzie mam to umieścić?

Cała funkcja:
// utworzenie obrazka z tla
$im = imagecreatefrompng("status/background.png");
// kolor bialy
$white = imagecolorallocate($im, 255, 255, 255);
// polaczenie informacji do jednej zmiennej
$info = $server ."        ". $players ." / ". $playersmax ."            ". $map;
// gorny rzad, nazwa serwera
imagettftext($im, 10, 0, 30, 12, $white, MYRIAD_PRO, $hostname);
// dolny rzad, ip serwera, gracze, mapa
imagettftext($im, 10, 0, 30, 26, $white, MYRIAD_PRO, $info);

efekty w sygnaturze ;/
Zamiast nazwy wyświetla się "1"
Edited by ogury, 31.01.2012 17:06.
Quote

  • +
  • -
Gh0st's Photo Gh0st 31.01.2012

http://php.net/manua...str-replace.php

A nie lepiej
explode("@", $ciag)
??
Quote

ogury's Photo ogury 31.01.2012

Wywali wtedy samo "@" czy ciąg po małpie też?

404 po zaimplementowaniu.
// utworzenie obrazka z tla
$im = imagecreatefrompng("status/background.png");
// kolor bialy
$white = imagecolorallocate($im, 255, 255, 255);
// polaczenie informacji do jednej zmiennej
$info = $server ."      ". $players ." / ". $playersmax ."        ". $map;
// gorny rzad, nazwa serwera
explode("@", $hostname)
imagettftext($im, 8, 0, 30, 12, $white, TAHOMA, $hostname);
// dolny rzad, ip serwera, gracze, mapa
imagettftext($im, 8, 0, 30, 25, $white, TAHOMA, $info);
Quote

  • +
  • -
Gh0st's Photo Gh0st 31.01.2012

Wywali wtedy samo "@" czy ciąg po małpie też?

Rozbije ciąg na 2 częsci lub więcej jeśli jest więcej małp.

Czyli mamy np string
$string = "serwer @ zabijaka.pl";
$new   = explode("@", $string);
echo $new[0]; // wyświetli nam napis serwer
Quote

ogury's Photo ogury 31.01.2012

Teraz mam pustą nazwę serwera.
cały kod:
Spoiler
Quote

  • +
  • -
Gh0st's Photo Gh0st 31.01.2012

ehhh...
$nazwa   = explode("@", $hostname);
imagettftext($im, 8, 0, 30, 12, $white, TAHOMA, $nazwa);
na
$nazwa   = explode("@", $hostname);
imagettftext($im, 8, 0, 30, 12, $white, TAHOMA, $nazwa[0]);
Quote

ogury's Photo ogury 31.01.2012

Dziękuję, działa. Jeżeli chcę teraz także wywalić "at" i "^" jeszcze "by", to nie muszę nic edytować, wystarczy dopisać:
$nazwa   = explode("^", $hostname);
Tak?
Quote