将2个现有php函数合并为一个
我有两个PHP函数,它们在单独的PHP页面上独立工作 第一页:将2个现有php函数合并为一个,php,Php,我有两个PHP函数,它们在单独的PHP页面上独立工作 第一页: <?php function shortURL($url) { $ch = curl_init(); $timeout = 5; curl_setopt($ch,CURLOPT_URL,'http://tinyurl.com/api-create.php?url='.$url); curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); curl_setopt($ch,CURLOPT_C
<?php
function shortURL($url) {
$ch = curl_init();
$timeout = 5;
curl_setopt($ch,CURLOPT_URL,'http://tinyurl.com/api-create.php?url='.$url);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout);
$short_url = curl_exec($ch);
curl_close($ch);
return $short_url;
}
$url = "http://technoflirt.com/tech/2011/01/11/running-php-script-host/";
$short_url = shortURL($url);
echo "Actual url =". $url . "<br />";
echo "Shortened url = <a href=$short_url>$short_url</a> <br />";
?>
第二页是发送电子邮件信息的现有片段。我尝试将函数组合在一起,但没有成功,我将函数shortURL($url)粘贴到函数email()的上方,然后粘贴$url和$short_url,并将echo语句更改为$message。这会导致一个致命错误:PHP致命错误:调用未定义的函数shortURL(),所以我知道这不起作用。如何成功转换tinyURL,然后将其合并到功能电子邮件中
function shortURL($url) {
$ch = curl_init();
$timeout = 5;
curl_setopt($ch,CURLOPT_URL,'http://tinyurl.com/api-create.php?url='.$url);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout);
$short_url = curl_exec($ch);
curl_close($ch);
return $short_url;
function email($array, $task, $techinfo,$additionalinfo = array()) {
$to = $techinfo["EmpHTEmail"];
$url = "http://technoflirt.com/tech/2011/01/11/running-php-script-host/";
$short_url = shortURL($url);
$subject = ($task == "unschedule") ? '' : ($task == "notify" ? "": "Else Message");
$message = "";
if($task == "unschedule")
$message .="Work Order #:" . $array[0]["WorkOrderNum"] . " is cancelled.";
elseif($task == "notify")
{
$message .="".$additionalinfo[0]['sShortName']." (" . $array[0]["WorkOrderNum"] . ") <BR>".$additionalinfo[0]['sAddressNum']." ".$additionalinfo[0]['sAddressLine1'].", ".$additionalinfo[0]['sCityName']."<BR>".$additionalinfo[0]['sPhone1'] . " - ".$_SESSION['Latitude'].",".$_SESSION['Longitude']."<BR>";
$message .="". $additionalinfo[0]['JobDescription'] . " - ". $url . "";
$message .="Actual url =". $url . "";
$message .="Shortened url = $short_url";
}
$message .="";
// Always set content-type when sending HTML email
$headers = "MIME-Version: 1.0" . "\r\n";
$headers .= "Content-type:text/html;charset=UTF-8" . "\r\n";
mail($to, $subject, $message, $headers);
}
函数短url($url){
$ch=curl_init();
$timeout=5;
curl_setopt($ch,CURLOPT_URL,'http://tinyurl.com/api-create.php?url=“.$url);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout);
$short\u url=curl\u exec($ch);
卷曲关闭($ch);
返回$short_url;
函数电子邮件($array、$task、$techinfo、$additionalinfo=array()){
$to=$techinfo[“emphtmail”];
$url=”http://technoflirt.com/tech/2011/01/11/running-php-script-host/";
$short_url=shortURL($url);
$subject=($task==“计划外”)?“”:($task==“通知”?“”:“其他消息”);
$message=“”;
如果($task==“计划外”)
$message.=“工单:”$array[0][“WorkOrderNum”]”已取消。“;
elseif($task==“notify”)
{
$message.='.$additionalinfo[0]['sShortName'].'”(“$array[0][“WorkOrderNum”]”
“$additionalinfo[0]['sAddressNum'..”.$additionalinfo[0]['sCityName'.”
“$additionalinfo[0]['sPhone1'.-”\u SESSION['lations'.['sAddressLine1'.],“
”,“$additionalinfo[0]['sCityName'.-”;
$message.=''.$additionalinfo[0]['JobDescription'].-“$url.”;
$message.=“实际url=”.$url.“;
$message.=“缩短的url=$short\u url”;
}
$message.=“”;
//发送HTML电子邮件时始终设置内容类型
$headers=“MIME版本:1.0”。\r\n”;
$headers.=“内容类型:text/html;字符集=UTF-8”。\r\n”;
邮件($to、$subject、$message、$headers);
}
似乎您只是在另一个函数中使用了该命令,而没有访问该函数,因为它位于另一个文件中
只需将完整函数复制到同一文件中邮件函数的上方即可
但您可能应该将所有单独的松散函数收集在一个大文件中,并将其包含在所有页面中,以便在需要时访问
e、 g.functions.php
在你的页面中,你只需要包含这个文件
include "PATH/TO/FILE/functions.php";
函数email()是一个更大的名为Communications的类的一部分。我将函数shortURL()放在这个类之外的文件顶部,它工作得很好。我做了……我更新了第二个代码块……这是我合并两个文件所做的,这给了我一个问题。