webForumDet fria alternativet

Hur får man en function att fungera ?

6 svar · 812 visningar · startad av Emil W

Emil WMedlem sedan mars 2009512 inlägg
#1

Hur ska man skriva för att man ska få funktion att fungera ?
så att när man hämtar ut text om det står så här ska det bli en länk
t.e.x @Admin då ska det länkas till admins krypin ?

men jag vet inte hur man kopplar på den här funktionen ?

function b($text)
{
$text = preg_match('/^@+[A-Öaö0-9%&.,-_]$/',htmlspecialchars($row['texter']));
}
voigtann1Medlem sedan juni 20019 519 inlägg
#2

Byref i php är tydligen &:

function b(&$text)
{
$text = preg_match('/^@+[A-Öaö0-9%&.,-_]$/',htmlspecialchars($row['texter']));
}

http://php.net/manual/en/language.references.pass.php

Fast det klart, var kommer $row objektet ifrån, inte direkt smart funktion.

nitro2k01Medlem sedan aug. 20039 342 inlägg
#3

Emil, det normala sättet att få ut ett värde från en funktion är med hjälp av return. Om du inte har något särskilt skäl att göra som du vill göra så föreslår jag att du använder return.

function b()
{
return preg_match('/^@+[A-Öaö0-9%&.,-_]$/',htmlspecialchars($row['texter']));
}

// Sen någon helt annanstans:
$minText=b();
The_HulkMedlem sedan juni 20031 837 inlägg
#4

Emil W skrev:

Hur ska man skriva för att man ska få funktion att fungera ?
så att när man hämtar ut text om det står så här ska det bli en länk
t.e.x @Admin då ska det länkas till admins krypin ?

men jag vet inte hur man kopplar på den här funktionen ?

function b($text)
{
$text = preg_match('/^@+[A-Öaö0-9%&.,-_]$/',htmlspecialchars($row['texter']));
}

Vad menar du egentligen med att "koppla på funktionen".
Vill du att funktionen ska göra en länk av @Admin
Anropas funktionen från en annan funktion? Om den anropas från en annan funktion så måste du antingen ha $row deklarerade globalt eller så måste du skicka med $row till funktionen.

function b($text)
{
    global $row;
    $text = preg_match('/^@ [A-Öaö0-9%&.,-_]$/',htmlspecialchars($row['texter']));
    return $text;
}
Emil WMedlem sedan mars 2009512 inlägg
#5

ja, det är det jag vill att han ska göra en länk om man skriver @Admin

$row är när jag hämtar ut info från tabellen.

The_HulkMedlem sedan juni 20031 837 inlägg
#6

Du har fortfarande inte svarat på var du deklarerar $row.
Det är bäst om du kan visa lite mer kod.

preg_match kollar bara om ditt regulära uttryck matachar ett villkor. Du vill göra en ersättning vilket du får göra med preg_replace. gå till https://www.php.net och sök efter preg_replace.

Emil WMedlem sedan mars 2009512 inlägg
#7

Här kommer mer kod.

$server = "***********";
$user = "***********";
$pass = "**************";

$con = @mysql_connect($server,$user,$pass);
if(!$con)
{
die('fel' . mysql_error());
}
mysql_select_db("****************", $con) or die('Databas fel ' . mysql_error());

$antal = "2";
$page = (isset($_GET['page'])) ? intval($_GET['page']):0;
$fa = $antal * $page;

$id1 = mysql_real_escape_string($_GET['inid']);
$in1 = mysql_query("SELECT COUNT(*) AS count FROM gastbok WHERE too=$id1");
$in1 = mysql_result($in1,0,'count');

$pag = $in1 / $antal;

$id = mysql_real_escape_string($_GET['inid']);
$iddet = mysql_real_escape_string($_SESSION['sess_id']);
if(isset($_GET['tabort']))
{
$taid = mysql_real_escape_string($_GET['tabort']);
mysql_query("DELETE FROM gastbok WHERE too=$iddet AND id='$taid'");
}

//Om den är läst uppdatera
if(isset($_GET['last']))
{
mysql_query("UPDATE gastbok SET las=1 WHERE too='$iddet' AND too='$id'");
}

//Hämtar ut info
$innn = "SELECT a.userid,a.datum,a.texter,a.id,a.las,a.too,a.svar,b.anvandarnamn,b.rights FROM gastbok AS a JOIN members AS b ON a.userid = b.id WHERE a.too=$id ORDER BY datum DESC LIMIT $fa,$antal";
$sqlll = mysql_query($innn);

$idver = intval($_SESSION['sess_id']);

$idettt = intval($_GET['inid']);

$id = intval($_GET['inid']);

$page_links = "";

for($i = 0; $i < $pag; $i++)
{
 $page_links .= ($i == $page) ? '[ '.($i+1).' ]&nbsp;' : '[ <a href="?inid='.$id.'&page='.$i.'">'.($i+1).'</a> ]&nbsp';
while($row = mysql_fetch_array($sqlll))
{
$idett = intval($row['id']);
echo "<div class=\"gbbox\">";
echo "<b>Från:</b> ".htmlspecialchars($row['anvandarnamn'])." - ".htmlspecialchars($row['datum']);

if(htmlspecialchars($row['rights'] == '1'))
{
echo " <b>Admin</b>";
}
if(htmlspecialchars($row['las'] == 1))
{
}
else
{
echo "<font color=\"#FF0000\" size=\"4px\"><b> Nytt!</b></font>";
}
echo "<br><br>";
echo nl2br(htmlspecialchars($row['texter']))."<hr>";
echo "Svar:".nl2br(htmlspecialchars($row['svar']))."";

if(htmlspecialchars($row['too'] == $idver ))
{
echo "<center><a href=svaragb.php?inid=$id&id=$idett&page=$page>Svara på gb inlägget</a> - <a href=\"gastbok.php?inid=$id&tabort=$idett\">Ta bort</a></center>";
}
else
{
}
echo "</div>";
}
}
echo "<center>".$page_links."</center>";

?>
139 ms totalt · 3 externa anrop · v20260731065814-full.fb544a5a
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
136 ms — hämta tråd, inlägg och bilagor (db)