webForumDet fria alternativet
Logga in / Bli medlem

Hur får man en function att fungera ?

PHP

6 svar · 814 visningar · startad av Emil W

Medlem sedan mars 2009512 inlägg
Frågan#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']));
}
Medlem 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.

Medlem sedan aug. 20039 340 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();
Medlem 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;
}
Medlem 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.

Medlem 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.

Medlem 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>";

?>
261 ms totalt · 4 externa anrop · v20260731065814-full.5386d3bf
127 ms — deklarationer (db)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)
119 ms — ändringar (db)